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 2018/05/30 14:48:59 UTC

[01/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 33f757fb2 -> 4df09ed92


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html
index e73a619..1648ba3 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html
@@ -32,247 +32,259 @@
 <span class="sourceLineNo">024</span>import java.util.HashSet;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.Map;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.Set;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.*;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.Durability;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Put;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.Result;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Table;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.FilterTests;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.junit.After;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.junit.AfterClass;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.junit.Before;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.BeforeClass;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.ClassRule;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.Rule;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.Test;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.experimental.categories.Category;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.junit.rules.TestName;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.slf4j.Logger;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.slf4j.LoggerFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>class StringRange {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private String start = null;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  private String end = null;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private boolean startInclusive = true;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private boolean endInclusive = false;<a name="line.55"></a>
+<span class="sourceLineNo">027</span>import java.util.Objects;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Set;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.Cell;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.KeyValue;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.KeyValueTestUtil;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.TableName;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Durability;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.Put;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.Result;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.Table;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.testclassification.FilterTests;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.After;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.junit.AfterClass;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.Before;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.junit.BeforeClass;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.ClassRule;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.Rule;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Test;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.experimental.categories.Category;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.rules.TestName;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.slf4j.Logger;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.slf4j.LoggerFactory;<a name="line.55"></a>
 <span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public StringRange(String start, boolean startInclusive, String end,<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      boolean endInclusive) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    this.start = start;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    this.startInclusive = startInclusive;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    this.end = end;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    this.endInclusive = endInclusive;<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>  public String getStart() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    return this.start;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  public String getEnd() {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    return this.end;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public boolean isStartInclusive() {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    return this.startInclusive;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public boolean isEndInclusive() {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    return this.endInclusive;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  @Override<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  public int hashCode() {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    int hashCode = 0;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    if (this.start != null) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      hashCode ^= this.start.hashCode();<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>    if (this.end != null) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      hashCode ^= this.end.hashCode();<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return hashCode;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">057</span>class StringRange {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private String start = null;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private String end = null;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private boolean startInclusive = true;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private boolean endInclusive = false;<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public StringRange(String start, boolean startInclusive, String end,<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      boolean endInclusive) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    this.start = start;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    this.startInclusive = startInclusive;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    this.end = end;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this.endInclusive = endInclusive;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public String getStart() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    return this.start;<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>  public String getEnd() {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    return this.end;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  public boolean isStartInclusive() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    return this.startInclusive;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public boolean isEndInclusive() {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    return this.endInclusive;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  @Override<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public int hashCode() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    int hashCode = 0;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    if (this.start != null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      hashCode ^= this.start.hashCode();<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>  @Override<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public String toString() {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    String result = (this.startInclusive ? "[" : "(")<a name="line.96"></a>
-<span class="sourceLineNo">097</span>          + (this.start == null ? null : this.start) + ", "<a name="line.97"></a>
-<span class="sourceLineNo">098</span>          + (this.end == null ? null : this.end)<a name="line.98"></a>
-<span class="sourceLineNo">099</span>          + (this.endInclusive ? "]" : ")");<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    return result;<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>   public boolean inRange(String value) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    boolean afterStart = true;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    if (this.start != null) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      int startCmp = value.compareTo(this.start);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      afterStart = this.startInclusive ? startCmp &gt;= 0 : startCmp &gt; 0;<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>    boolean beforeEnd = true;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    if (this.end != null) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      int endCmp = value.compareTo(this.end);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      beforeEnd = this.endInclusive ? endCmp &lt;= 0 : endCmp &lt; 0;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>    return afterStart &amp;&amp; beforeEnd;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>}<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>@Category({FilterTests.class, MediumTests.class})<a name="line.122"></a>
-<span class="sourceLineNo">123</span>public class TestColumnRangeFilter {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  @ClassRule<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      HBaseClassTestRule.forClass(TestColumnRangeFilter.class);<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static final Logger LOG = LoggerFactory.getLogger(TestColumnRangeFilter.class);<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  @Rule<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public TestName name = new TestName();<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>   * @throws java.lang.Exception<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  @BeforeClass<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  public static void setUpBeforeClass() throws Exception {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    TEST_UTIL.startMiniCluster();<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  /**<a name="line.144"></a>
-<span class="sourceLineNo">145</span>   * @throws java.lang.Exception<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   */<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  @AfterClass<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  public static void tearDownAfterClass() throws Exception {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    TEST_UTIL.shutdownMiniCluster();<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>   * @throws java.lang.Exception<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  @Before<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  public void setUp() throws Exception {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    // Nothing to do.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  }<a name="line.158"></a>
+<span class="sourceLineNo">094</span>    if (this.end != null) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      hashCode ^= this.end.hashCode();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return hashCode;<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>  @Override<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  public boolean equals(Object obj) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    if (this == obj) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      return true;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    if (obj == null) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      return false;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    if (!(obj instanceof StringRange)) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    StringRange oth = (StringRange) obj;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return this.startInclusive == oth.startInclusive &amp;&amp;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        this.endInclusive == oth.endInclusive &amp;&amp;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        Objects.equals(this.start, oth.start) &amp;&amp;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        Objects.equals(this.end, oth.end);<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>  @Override<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public String toString() {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    String result = (this.startInclusive ? "[" : "(")<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          + (this.start == null ? null : this.start) + ", "<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          + (this.end == null ? null : this.end)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          + (this.endInclusive ? "]" : ")");<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    return result;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>   public boolean inRange(String value) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    boolean afterStart = true;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    if (this.start != null) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      int startCmp = value.compareTo(this.start);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      afterStart = this.startInclusive ? startCmp &gt;= 0 : startCmp &gt; 0;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>    boolean beforeEnd = true;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    if (this.end != null) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      int endCmp = value.compareTo(this.end);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      beforeEnd = this.endInclusive ? endCmp &lt;= 0 : endCmp &lt; 0;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    return afterStart &amp;&amp; beforeEnd;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>}<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>@Category({FilterTests.class, MediumTests.class})<a name="line.146"></a>
+<span class="sourceLineNo">147</span>public class TestColumnRangeFilter {<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  @ClassRule<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      HBaseClassTestRule.forClass(TestColumnRangeFilter.class);<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private static final Logger LOG = LoggerFactory.getLogger(TestColumnRangeFilter.class);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  @Rule<a name="line.157"></a>
+<span class="sourceLineNo">158</span>  public TestName name = new TestName();<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>   * @throws java.lang.Exception<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   */<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  @After<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  public void tearDown() throws Exception {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    // Nothing to do.<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void TestColumnRangeFilterClient() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    String family = "Family";<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Table ht = TEST_UTIL.createTable(TableName.valueOf(name.getMethodName()),<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        Bytes.toBytes(family), Integer.MAX_VALUE);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    List&lt;String&gt; rows = generateRandomWords(10, 8);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    long maxTimestamp = 2;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    List&lt;String&gt; columns = generateRandomWords(20000, 8);<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    List&lt;KeyValue&gt; kvList = new ArrayList&lt;&gt;();<a name="line.178"></a>
+<span class="sourceLineNo">160</span>  @BeforeClass<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  public static void setUpBeforeClass() throws Exception {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    TEST_UTIL.startMiniCluster();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  }<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>  @AfterClass<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public static void tearDownAfterClass() throws Exception {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    TEST_UTIL.shutdownMiniCluster();<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>  @Before<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public void setUp() throws Exception {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // Nothing to do.<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>  @After<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public void tearDown() throws Exception {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // Nothing to do.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
 <span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    Map&lt;StringRange, List&lt;KeyValue&gt;&gt; rangeMap = new HashMap&lt;&gt;();<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>    rangeMap.put(new StringRange(null, true, "b", false),<a name="line.182"></a>
-<span class="sourceLineNo">183</span>        new ArrayList&lt;&gt;());<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    rangeMap.put(new StringRange("p", true, "q", false),<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        new ArrayList&lt;&gt;());<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    rangeMap.put(new StringRange("r", false, "s", true),<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        new ArrayList&lt;&gt;());<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    rangeMap.put(new StringRange("z", false, null, false),<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        new ArrayList&lt;&gt;());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    String valueString = "ValueString";<a name="line.190"></a>
+<span class="sourceLineNo">180</span>  @Test<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  public void TestColumnRangeFilterClient() throws Exception {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    String family = "Family";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    Table ht = TEST_UTIL.createTable(TableName.valueOf(name.getMethodName()),<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        Bytes.toBytes(family), Integer.MAX_VALUE);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    List&lt;String&gt; rows = generateRandomWords(10, 8);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    long maxTimestamp = 2;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    List&lt;String&gt; columns = generateRandomWords(20000, 8);<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>    List&lt;KeyValue&gt; kvList = new ArrayList&lt;&gt;();<a name="line.190"></a>
 <span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>    for (String row : rows) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      Put p = new Put(Bytes.toBytes(row));<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      for (String column : columns) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        for (long timestamp = 1; timestamp &lt;= maxTimestamp; timestamp++) {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>          KeyValue kv = KeyValueTestUtil.create(row, family, column, timestamp,<a name="line.197"></a>
-<span class="sourceLineNo">198</span>              valueString);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>          p.add(kv);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>          kvList.add(kv);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          for (StringRange s : rangeMap.keySet()) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>            if (s.inRange(column)) {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>              rangeMap.get(s).add(kv);<a name="line.203"></a>
-<span class="sourceLineNo">204</span>            }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>          }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      ht.put(p);<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>    TEST_UTIL.flush();<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>    ColumnRangeFilter filter;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    Scan scan = new Scan();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    scan.setMaxVersions();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    for (StringRange s : rangeMap.keySet()) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      filter = new ColumnRangeFilter(s.getStart() == null ? null<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          : Bytes.toBytes(s.getStart()), s.isStartInclusive(),<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          s.getEnd() == null ? null : Bytes.toBytes(s.getEnd()),<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          s.isEndInclusive());<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      scan.setFilter(filter);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      ResultScanner scanner = ht.getScanner(scan);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      List&lt;Cell&gt; results = new ArrayList&lt;&gt;();<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      LOG.info("scan column range: " + s.toString());<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      long timeBeforeScan = System.currentTimeMillis();<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>      Result result;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      while ((result = scanner.next()) != null) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        for (Cell kv : result.listCells()) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          results.add(kv);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      long scanTime = System.currentTimeMillis() - timeBeforeScan;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      scanner.close();<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      LOG.info("scan time = " + scanTime + "ms");<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      LOG.info("found " + results.size() + " results");<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      LOG.info("Expecting " + rangeMap.get(s).size() + " results");<a name="line.237"></a>
+<span class="sourceLineNo">192</span>    Map&lt;StringRange, List&lt;KeyValue&gt;&gt; rangeMap = new HashMap&lt;&gt;();<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    rangeMap.put(new StringRange(null, true, "b", false),<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        new ArrayList&lt;&gt;());<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    rangeMap.put(new StringRange("p", true, "q", false),<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        new ArrayList&lt;&gt;());<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    rangeMap.put(new StringRange("r", false, "s", true),<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        new ArrayList&lt;&gt;());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    rangeMap.put(new StringRange("z", false, null, false),<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        new ArrayList&lt;&gt;());<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    String valueString = "ValueString";<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    for (String row : rows) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      Put p = new Put(Bytes.toBytes(row));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      for (String column : columns) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        for (long timestamp = 1; timestamp &lt;= maxTimestamp; timestamp++) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          KeyValue kv = KeyValueTestUtil.create(row, family, column, timestamp,<a name="line.209"></a>
+<span class="sourceLineNo">210</span>              valueString);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>          p.add(kv);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          kvList.add(kv);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          for (StringRange s : rangeMap.keySet()) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>            if (s.inRange(column)) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>              rangeMap.get(s).add(kv);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      ht.put(p);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>    TEST_UTIL.flush();<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    ColumnRangeFilter filter;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    Scan scan = new Scan();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    scan.setMaxVersions();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    for (StringRange s : rangeMap.keySet()) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      filter = new ColumnRangeFilter(s.getStart() == null ? null<a name="line.229"></a>
+<span class="sourceLineNo">230</span>          : Bytes.toBytes(s.getStart()), s.isStartInclusive(),<a name="line.230"></a>
+<span class="sourceLineNo">231</span>          s.getEnd() == null ? null : Bytes.toBytes(s.getEnd()),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>          s.isEndInclusive());<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      scan.setFilter(filter);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      ResultScanner scanner = ht.getScanner(scan);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      List&lt;Cell&gt; results = new ArrayList&lt;&gt;();<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      LOG.info("scan column range: " + s.toString());<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      long timeBeforeScan = System.currentTimeMillis();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>      /*<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      for (KeyValue kv : results) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        LOG.info("found row " + Bytes.toString(kv.getRow()) + ", column "<a name="line.241"></a>
-<span class="sourceLineNo">242</span>            + Bytes.toString(kv.getQualifier()));<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><a name="line.245"></a>
-<span class="sourceLineNo">246</span>      assertEquals(rangeMap.get(s).size(), results.size());<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    ht.close();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">239</span>      Result result;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      while ((result = scanner.next()) != null) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        for (Cell kv : result.listCells()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>          results.add(kv);<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>      long scanTime = System.currentTimeMillis() - timeBeforeScan;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      scanner.close();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      LOG.info("scan time = " + scanTime + "ms");<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      LOG.info("found " + results.size() + " results");<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      LOG.info("Expecting " + rangeMap.get(s).size() + " results");<a name="line.249"></a>
 <span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>  List&lt;String&gt; generateRandomWords(int numberOfWords, int maxLengthOfWords) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    Set&lt;String&gt; wordSet = new HashSet&lt;&gt;();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    for (int i = 0; i &lt; numberOfWords; i++) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      int lengthOfWords = (int) (Math.random() * maxLengthOfWords) + 1;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      char[] wordChar = new char[lengthOfWords];<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      for (int j = 0; j &lt; wordChar.length; j++) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        wordChar[j] = (char) (Math.random() * 26 + 97);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      String word = new String(wordChar);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      wordSet.add(word);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    List&lt;String&gt; wordList = new ArrayList&lt;&gt;(wordSet);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    return wordList;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>}<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">251</span>      /*<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      for (KeyValue kv : results) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        LOG.info("found row " + Bytes.toString(kv.getRow()) + ", column "<a name="line.253"></a>
+<span class="sourceLineNo">254</span>            + Bytes.toString(kv.getQualifier()));<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      */<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>      assertEquals(rangeMap.get(s).size(), results.size());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    ht.close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  List&lt;String&gt; generateRandomWords(int numberOfWords, int maxLengthOfWords) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    Set&lt;String&gt; wordSet = new HashSet&lt;&gt;();<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    for (int i = 0; i &lt; numberOfWords; i++) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      int lengthOfWords = (int) (Math.random() * maxLengthOfWords) + 1;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      char[] wordChar = new char[lengthOfWords];<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      for (int j = 0; j &lt; wordChar.length; j++) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        wordChar[j] = (char) (Math.random() * 26 + 97);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      String word = new String(wordChar);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      wordSet.add(word);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    List&lt;String&gt; wordList = new ArrayList&lt;&gt;(wordSet);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    return wordList;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>}<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
 
 
 


[38/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureStateSerializer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureStateSerializer.html b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureStateSerializer.html
index 675aa12..3b6267e 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureStateSerializer.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureStateSerializer.html
@@ -264,60 +264,68 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">RecoverMetaProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">EnableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RecoverMetaProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">CreateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">EnableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">ModifyNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">CreateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">TruncateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ModifyNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">RestoreSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TruncateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">AbstractStateMachineRegionProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RestoreSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">DeleteTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">AbstractStateMachineRegionProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">CloneSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">DeleteTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">CreateNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">CloneSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">DisableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">CreateNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">DisableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureSuspendedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureSuspendedException.html b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureSuspendedException.html
index 347ee88..0ffe676 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureSuspendedException.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureSuspendedException.html
@@ -193,6 +193,11 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+                org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&nbsp;state)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureYieldException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureYieldException.html b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureYieldException.html
index f55ed90..5c716bd 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureYieldException.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/ProcedureYieldException.html
@@ -145,6 +145,11 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+                org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&nbsp;state)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.Flow.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.Flow.html b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.Flow.html
index fb95a80..6a9522c 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.Flow.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.Flow.html
@@ -205,15 +205,20 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+                org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TruncateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.TruncateTableState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.TruncateTableState&nbsp;state)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.html
index f055c53..aa850b9 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/StateMachineProcedure.html
@@ -223,15 +223,21 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></span></code>
+<div class="block">Used for non table procedures to reopen the regions for a table.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></span></code>
 <div class="block">Handle crashed server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a></span></code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 a1cb2a7..422a5fa 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -213,9 +213,9 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html b/devapidocs/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html
index 829c0b4..ae181d4 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html
@@ -131,7 +131,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
    <tr><td>u.&lt;user&gt;</td><td>q:s</td><td>&lt;global-quotas&gt;</td></tr>
    <tr><td>u.&lt;user&gt;</td><td>q:s.&lt;table&gt;</td><td>&lt;table-quotas&gt;</td></tr>
    <tr><td>u.&lt;user&gt;</td><td>q:s.&lt;ns&gt;</td><td>&lt;namespace-quotas&gt;</td></tr>
- </table</div>
+ </table></div>
 </li>
 </ul>
 </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 c6da314..d0a2832 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -229,13 +229,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html b/devapidocs/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html
index 4f73205..10abffa 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html
@@ -124,7 +124,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.36">DisableTableViolationPolicyEnforcement</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.37">DisableTableViolationPolicyEnforcement</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/quotas/policies/DefaultViolationPolicyEnforcement.html" title="class in org.apache.hadoop.hbase.quotas.policies">DefaultViolationPolicyEnforcement</a></pre>
 <div class="block">A <a href="../../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicyEnforcement.html" title="interface in org.apache.hadoop.hbase.quotas"><code>SpaceViolationPolicyEnforcement</code></a> which disables the table. The enforcement
  counterpart to <a href="../../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#DISABLE"><code>SpaceViolationPolicy.DISABLE</code></a>.</div>
@@ -255,7 +255,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/quotas/policies/Defau
 <ul class="blockListLast">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.37">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.38">LOG</a></pre>
 </li>
 </ul>
 </li>
@@ -272,7 +272,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/quotas/policies/Defau
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DisableTableViolationPolicyEnforcement</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.36">DisableTableViolationPolicyEnforcement</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.37">DisableTableViolationPolicyEnforcement</a>()</pre>
 </li>
 </ul>
 </li>
@@ -289,7 +289,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/quotas/policies/Defau
 <ul class="blockList">
 <li class="blockList">
 <h4>enable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.41">enable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.42">enable</a>()
             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicyEnforcement.html#enable--">SpaceViolationPolicyEnforcement</a></code></span></div>
 <div class="block">Enables this policy. Not all policies have enable actions.</div>
@@ -309,7 +309,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/quotas/policies/Defau
 <ul class="blockList">
 <li class="blockList">
 <h4>disable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.56">disable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.57">disable</a>()
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicyEnforcement.html#disable--">SpaceViolationPolicyEnforcement</a></code></span></div>
 <div class="block">Disables this policy. Not all policies have disable actions.</div>
@@ -329,7 +329,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/quotas/policies/Defau
 <ul class="blockList">
 <li class="blockList">
 <h4>check</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.71">check</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;m)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.73">check</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;m)
            throws <a href="../../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicyEnforcement.html#check-org.apache.hadoop.hbase.client.Mutation-">SpaceViolationPolicyEnforcement</a></code></span></div>
 <div class="block">Checks the given <a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client"><code>Mutation</code></a> against <code>this</code> policy. If the
@@ -351,7 +351,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/quotas/policies/Defau
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getPolicyName</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.78">getPolicyName</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html#line.80">getPolicyName</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicyEnforcement.html#getPolicyName--">SpaceViolationPolicyEnforcement</a></code></span></div>
 <div class="block">Returns a logical name for the <a href="../../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><code>SpaceViolationPolicy</code></a> that this enforcement is for.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
index 4808693..b1437ea 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
-public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3015">HRegion.BatchOperation.Visitor</a></pre>
+public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3021">HRegion.BatchOperation.Visitor</a></pre>
 <div class="block">Visitor interface for batch operations</div>
 </li>
 </ul>
@@ -155,7 +155,7 @@ public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase
 <ul class="blockListLast">
 <li class="blockList">
 <h4>visit</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html#line.3020">visit</a>(int&nbsp;index)
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html#line.3026">visit</a>(int&nbsp;index)
        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>


[31/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 0fea3db..1076efb 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -2686,6 +2686,7 @@
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">GCMergedRegionsProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">MergeTableRegionsProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ModifyTableProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ReopenTableRegionsProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">RestoreSnapshotProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TruncateTableProcedure</span></a></li>
 </ul>
@@ -3629,6 +3630,8 @@
 <li type="circle">org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TableCFs.html" title="class in org.apache.hadoop.hbase.client.replication"><span class="typeNameLink">TableCFs</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorBuilder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorBuilder.ModifyableTableDescriptor</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils.TableDescriptorDelta</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/TableInfoModel.html" title="class in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">TableInfoModel</span></a> (implements org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/ProtobufMessageHandler.html" title="interface in org.apache.hadoop.hbase.rest">ProtobufMessageHandler</a>, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableInputFormatBase.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableInputFormatBase</span></a> (implements org.apache.hadoop.mapred.InputFormat&lt;K,V&gt;)
 <ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 655d810..cacb5a3 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 = "42be553433775c5985f6c68f8178e51afb0a402e";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "997747076d8ec0b4346d7cb99c4b0667a7c14905";<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 = "Tue May 29 14:39:26 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Wed May 30 14:39:41 UTC 2018";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "7bba60c298c587d54706ccb554793a39";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "32b36d4fceefb83ecf450c63e8222854";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
index 0cc9507..134fbc3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
@@ -85,7 +85,7 @@
 <span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
 <span class="sourceLineNo">078</span>   * Validate target tables.<a name="line.78"></a>
 <span class="sourceLineNo">079</span>   *<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   * @param tTableArray: target tables<a name="line.80"></a>
+<span class="sourceLineNo">080</span>   * @param tTableArray target tables<a name="line.80"></a>
 <span class="sourceLineNo">081</span>   * @param isOverwrite overwrite existing table<a name="line.81"></a>
 <span class="sourceLineNo">082</span>   * @throws IOException exception<a name="line.82"></a>
 <span class="sourceLineNo">083</span>   */<a name="line.83"></a>
@@ -131,10 +131,10 @@
 <span class="sourceLineNo">123</span>  /**<a name="line.123"></a>
 <span class="sourceLineNo">124</span>   * Restore operation handle each backupImage in array.<a name="line.124"></a>
 <span class="sourceLineNo">125</span>   *<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * @param images: array BackupImage<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @param sTable: table to be restored<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * @param tTable: table to be restored to<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   * @param truncateIfExists: truncate table<a name="line.129"></a>
+<span class="sourceLineNo">126</span>   * @param images array BackupImage<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * @param sTable table to be restored<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * @param tTable table to be restored to<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * @param truncateIfExists truncate table<a name="line.129"></a>
 <span class="sourceLineNo">130</span>   * @throws IOException exception<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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/client/ClusterConnection.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ClusterConnection.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ClusterConnection.html
index c1bc8ac..deb8240 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ClusterConnection.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ClusterConnection.html
@@ -240,7 +240,7 @@
 <span class="sourceLineNo">232</span><a name="line.232"></a>
 <span class="sourceLineNo">233</span>  /**<a name="line.233"></a>
 <span class="sourceLineNo">234</span>   * Establishes a connection to the region server at the specified address.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * @param serverName<a name="line.235"></a>
+<span class="sourceLineNo">235</span>   * @param serverName the region server to connect to<a name="line.235"></a>
 <span class="sourceLineNo">236</span>   * @return proxy for HRegionServer<a name="line.236"></a>
 <span class="sourceLineNo">237</span>   * @throws IOException if a remote or network exception occurs<a name="line.237"></a>
 <span class="sourceLineNo">238</span>   */<a name="line.238"></a>
@@ -250,7 +250,7 @@
 <span class="sourceLineNo">242</span>   * Establishes a connection to the region server at the specified address, and returns<a name="line.242"></a>
 <span class="sourceLineNo">243</span>   * a region client protocol.<a name="line.243"></a>
 <span class="sourceLineNo">244</span>   *<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * @param serverName<a name="line.245"></a>
+<span class="sourceLineNo">245</span>   * @param serverName the region server to connect to<a name="line.245"></a>
 <span class="sourceLineNo">246</span>   * @return ClientProtocol proxy for RegionServer<a name="line.246"></a>
 <span class="sourceLineNo">247</span>   * @throws IOException if a remote or network exception occurs<a name="line.247"></a>
 <span class="sourceLineNo">248</span>   *<a name="line.248"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html
new file mode 100644
index 0000000..8a1838a
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html
@@ -0,0 +1,171 @@
+<!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> *<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
+<span class="sourceLineNo">012</span> *<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.client;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Collections;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.Map;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Set;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.TreeMap;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.TreeSet;<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.util.Bytes;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@InterfaceAudience.Public<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public final class TableDescriptorUtils {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  public final static class TableDescriptorDelta {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    private final Set&lt;byte[]&gt; columnsAdded;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>    private final Set&lt;byte[]&gt; columnsDeleted;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    private final Set&lt;byte[]&gt; columnsModified;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>    private TableDescriptorDelta(TableDescriptor oldTD, TableDescriptor newTD) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>      Preconditions.checkNotNull(oldTD);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>      Preconditions.checkNotNull(newTD);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>      Map&lt;byte[], ColumnFamilyDescriptor&gt; oldCFs = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      Set&lt;byte[]&gt; newCFs = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>      // CFD -&gt; (name, CFD)<a name="line.46"></a>
+<span class="sourceLineNo">047</span>      for (ColumnFamilyDescriptor cfd : oldTD.getColumnFamilies()) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        oldCFs.put(cfd.getName(), cfd);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>      Set&lt;byte[]&gt; added = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      Set&lt;byte[]&gt; modified = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>      for (ColumnFamilyDescriptor cfd : newTD.getColumnFamilies()) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        byte[] cfName = cfd.getName();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        newCFs.add(cfName);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        if (!oldCFs.containsKey(cfName)) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>          // If column family is in newTD but not oldTD, then it was added<a name="line.59"></a>
+<span class="sourceLineNo">060</span>          added.add(cfName);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        } else if (!cfd.equals(oldCFs.get(cfName))) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>          // If column family is in both, but not equal, then it was modified<a name="line.62"></a>
+<span class="sourceLineNo">063</span>          modified.add(cfName);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>      // If column family is in oldTD, but not in newTD, then it got deleted.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      Set&lt;byte[]&gt; deleted = oldCFs.keySet();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      deleted.removeAll(newCFs);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>      columnsAdded = Collections.unmodifiableSet(added);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      columnsDeleted = Collections.unmodifiableSet(deleted);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      columnsModified = Collections.unmodifiableSet(modified);<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 Set&lt;byte[]&gt; getColumnsAdded() {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      return columnsAdded;<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 Set&lt;byte[]&gt; getColumnsDeleted() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      return columnsDeleted;<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 Set&lt;byte[]&gt; getColumnsModified() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      return columnsModified;<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><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private TableDescriptorUtils() { }<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>   * Compares two {@link TableDescriptor} and indicate which columns were added, deleted,<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * or modified from oldTD to newTD<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * @return a TableDescriptorDelta that contains the added/deleted/modified column names<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public static TableDescriptorDelta computeDelta(TableDescriptor oldTD, TableDescriptor newTD) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return new TableDescriptorDelta(oldTD, newTD);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
new file mode 100644
index 0000000..8a1838a
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
@@ -0,0 +1,171 @@
+<!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> *<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
+<span class="sourceLineNo">012</span> *<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.client;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Collections;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.Map;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Set;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.TreeMap;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.TreeSet;<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.util.Bytes;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@InterfaceAudience.Public<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public final class TableDescriptorUtils {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  public final static class TableDescriptorDelta {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    private final Set&lt;byte[]&gt; columnsAdded;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>    private final Set&lt;byte[]&gt; columnsDeleted;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    private final Set&lt;byte[]&gt; columnsModified;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>    private TableDescriptorDelta(TableDescriptor oldTD, TableDescriptor newTD) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>      Preconditions.checkNotNull(oldTD);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>      Preconditions.checkNotNull(newTD);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>      Map&lt;byte[], ColumnFamilyDescriptor&gt; oldCFs = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      Set&lt;byte[]&gt; newCFs = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>      // CFD -&gt; (name, CFD)<a name="line.46"></a>
+<span class="sourceLineNo">047</span>      for (ColumnFamilyDescriptor cfd : oldTD.getColumnFamilies()) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        oldCFs.put(cfd.getName(), cfd);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>      Set&lt;byte[]&gt; added = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      Set&lt;byte[]&gt; modified = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>      for (ColumnFamilyDescriptor cfd : newTD.getColumnFamilies()) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        byte[] cfName = cfd.getName();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        newCFs.add(cfName);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        if (!oldCFs.containsKey(cfName)) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>          // If column family is in newTD but not oldTD, then it was added<a name="line.59"></a>
+<span class="sourceLineNo">060</span>          added.add(cfName);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        } else if (!cfd.equals(oldCFs.get(cfName))) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>          // If column family is in both, but not equal, then it was modified<a name="line.62"></a>
+<span class="sourceLineNo">063</span>          modified.add(cfName);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>      // If column family is in oldTD, but not in newTD, then it got deleted.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      Set&lt;byte[]&gt; deleted = oldCFs.keySet();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      deleted.removeAll(newCFs);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>      columnsAdded = Collections.unmodifiableSet(added);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      columnsDeleted = Collections.unmodifiableSet(deleted);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      columnsModified = Collections.unmodifiableSet(modified);<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 Set&lt;byte[]&gt; getColumnsAdded() {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      return columnsAdded;<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 Set&lt;byte[]&gt; getColumnsDeleted() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      return columnsDeleted;<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 Set&lt;byte[]&gt; getColumnsModified() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      return columnsModified;<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><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private TableDescriptorUtils() { }<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>   * Compares two {@link TableDescriptor} and indicate which columns were added, deleted,<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * or modified from oldTD to newTD<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * @return a TableDescriptorDelta that contains the added/deleted/modified column names<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public static TableDescriptorDelta computeDelta(TableDescriptor oldTD, TableDescriptor newTD) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return new TableDescriptorDelta(oldTD, newTD);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html
index 67c1231..7b14d17 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html
@@ -34,7 +34,7 @@
 <span class="sourceLineNo">026</span><a name="line.26"></a>
 <span class="sourceLineNo">027</span>/**<a name="line.27"></a>
 <span class="sourceLineNo">028</span> * Used by {@link org.apache.hadoop.hbase.client.Admin#listReplicatedTableCFs()}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * The cfs is a map of &lt;ColumnFamily, ReplicationScope&gt;.<a name="line.29"></a>
+<span class="sourceLineNo">029</span> * The cfs is a map of &amp;lt;ColumnFamily, ReplicationScope&gt;.<a name="line.29"></a>
 <span class="sourceLineNo">030</span> */<a name="line.30"></a>
 <span class="sourceLineNo">031</span>@InterfaceAudience.Public<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class TableCFs {<a name="line.32"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/favored/StartcodeAgnosticServerName.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/favored/StartcodeAgnosticServerName.html b/devapidocs/src-html/org/apache/hadoop/hbase/favored/StartcodeAgnosticServerName.html
index e20a742..ea24d2b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/favored/StartcodeAgnosticServerName.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/favored/StartcodeAgnosticServerName.html
@@ -71,7 +71,11 @@
 <span class="sourceLineNo">063</span>  public int hashCode() {<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    return getHostAndPort().hashCode();<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">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  // Do not need @Override #equals() because super.equals() delegates to compareTo(), which ends<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  // up doing the right thing. We have a test for it, so the checkstyle warning here would be a<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  // false positive.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>}<a name="line.70"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
index 521e599..b7fa20f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
@@ -1489,7 +1489,7 @@
 <span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
 <span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
 <span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see {@link #add(byte[], long, int, long)}<a name="line.1484"></a>
+<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
 <span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
 <span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
 <span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html
index 521e599..b7fa20f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html
@@ -1489,7 +1489,7 @@
 <span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
 <span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
 <span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see {@link #add(byte[], long, int, long)}<a name="line.1484"></a>
+<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
 <span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
 <span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
 <span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
index 521e599..b7fa20f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
@@ -1489,7 +1489,7 @@
 <span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
 <span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
 <span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see {@link #add(byte[], long, int, long)}<a name="line.1484"></a>
+<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
 <span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
 <span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
 <span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html
index 521e599..b7fa20f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html
@@ -1489,7 +1489,7 @@
 <span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
 <span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
 <span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see {@link #add(byte[], long, int, long)}<a name="line.1484"></a>
+<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
 <span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
 <span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
 <span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html
index 521e599..b7fa20f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html
@@ -1489,7 +1489,7 @@
 <span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
 <span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
 <span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see {@link #add(byte[], long, int, long)}<a name="line.1484"></a>
+<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
 <span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
 <span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
 <span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
index 521e599..b7fa20f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
@@ -1489,7 +1489,7 @@
 <span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
 <span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
 <span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see {@link #add(byte[], long, int, long)}<a name="line.1484"></a>
+<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
 <span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
 <span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
 <span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
index 28a4ab7..fd558cb 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html
@@ -593,7 +593,7 @@
 <span class="sourceLineNo">585</span>  }<a name="line.585"></a>
 <span class="sourceLineNo">586</span><a name="line.586"></a>
 <span class="sourceLineNo">587</span>  /**<a name="line.587"></a>
-<span class="sourceLineNo">588</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer).<a name="line.588"></a>
+<span class="sourceLineNo">588</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)}.<a name="line.588"></a>
 <span class="sourceLineNo">589</span>   * Only one of readCh or writeCh should be non-null.<a name="line.589"></a>
 <span class="sourceLineNo">590</span>   *<a name="line.590"></a>
 <span class="sourceLineNo">591</span>   * @param readCh read channel<a name="line.591"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
index 28a4ab7..fd558cb 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html
@@ -593,7 +593,7 @@
 <span class="sourceLineNo">585</span>  }<a name="line.585"></a>
 <span class="sourceLineNo">586</span><a name="line.586"></a>
 <span class="sourceLineNo">587</span>  /**<a name="line.587"></a>
-<span class="sourceLineNo">588</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer).<a name="line.588"></a>
+<span class="sourceLineNo">588</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)}.<a name="line.588"></a>
 <span class="sourceLineNo">589</span>   * Only one of readCh or writeCh should be non-null.<a name="line.589"></a>
 <span class="sourceLineNo">590</span>   *<a name="line.590"></a>
 <span class="sourceLineNo">591</span>   * @param readCh read channel<a name="line.591"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
index 28a4ab7..fd558cb 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcServer.html
@@ -593,7 +593,7 @@
 <span class="sourceLineNo">585</span>  }<a name="line.585"></a>
 <span class="sourceLineNo">586</span><a name="line.586"></a>
 <span class="sourceLineNo">587</span>  /**<a name="line.587"></a>
-<span class="sourceLineNo">588</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer).<a name="line.588"></a>
+<span class="sourceLineNo">588</span>   * Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)}.<a name="line.588"></a>
 <span class="sourceLineNo">589</span>   * Only one of readCh or writeCh should be non-null.<a name="line.589"></a>
 <span class="sourceLineNo">590</span>   *<a name="line.590"></a>
 <span class="sourceLineNo">591</span>   * @param readCh read channel<a name="line.591"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
new file mode 100644
index 0000000..23a1ba6
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
@@ -0,0 +1,186 @@
+<!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.master.procedure;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<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.procedure2.ProcedureStateSerializer;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;<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>import org.slf4j.Logger;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.slf4j.LoggerFactory;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsStateData;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>/**<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * Used for non table procedures to reopen the regions for a table. For example,<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * {@link org.apache.hadoop.hbase.master.replication.ModifyPeerProcedure}.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
+<span class="sourceLineNo">038</span>public class ReopenTableRegionsProcedure<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    extends AbstractStateMachineTableProcedure&lt;ReopenTableRegionsState&gt; {<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  private static final Logger LOG = LoggerFactory.getLogger(ReopenTableRegionsProcedure.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  private TableName tableName;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  public ReopenTableRegionsProcedure() {<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 ReopenTableRegionsProcedure(TableName tableName) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    this.tableName = tableName;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  @Override<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  public TableName getTableName() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    return tableName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  }<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>  @Override<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public TableOperationType getTableOperationType() {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    return TableOperationType.REGION_EDIT;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  @Override<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  protected Flow executeFromState(MasterProcedureEnv env, ReopenTableRegionsState state)<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      throws ProcedureSuspendedException, ProcedureYieldException, InterruptedException {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    switch (state) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>      case REOPEN_TABLE_REGIONS_REOPEN_ALL_REGIONS:<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        try {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>          addChildProcedure(env.getAssignmentManager().createReopenProcedures(<a name="line.68"></a>
+<span class="sourceLineNo">069</span>            env.getAssignmentManager().getRegionStates().getRegionsOfTable(tableName)));<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        } catch (IOException e) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>          LOG.warn("Failed to schedule reopen procedures for {}", tableName, e);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>          throw new ProcedureSuspendedException();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        return Flow.NO_MORE_STATE;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      default:<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        throw new UnsupportedOperationException("unhandled state=" + state);<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><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  protected void rollbackState(MasterProcedureEnv env, ReopenTableRegionsState state)<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      throws IOException, InterruptedException {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    throw new UnsupportedOperationException();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  @Override<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  protected ReopenTableRegionsState getState(int stateId) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    return ReopenTableRegionsState.forNumber(stateId);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected int getStateId(ReopenTableRegionsState state) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return state.getNumber();<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>  @Override<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  protected ReopenTableRegionsState getInitialState() {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    return ReopenTableRegionsState.REOPEN_TABLE_REGIONS_REOPEN_ALL_REGIONS;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected void serializeStateData(ProcedureStateSerializer serializer) throws IOException {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    super.serializeStateData(serializer);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    serializer.serialize(ReopenTableRegionsStateData.newBuilder()<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      .setTableName(ProtobufUtil.toProtoTableName(tableName)).build());<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  protected void deserializeStateData(ProcedureStateSerializer serializer) throws IOException {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    super.deserializeStateData(serializer);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    tableName = ProtobufUtil<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      .toTableName(serializer.deserialize(ReopenTableRegionsStateData.class).getTableName());<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>}<a name="line.114"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
index 968e4a1d..e713611 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
@@ -38,143 +38,143 @@
 <span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.master.TableStateManager.TableStateNotFoundException;<a name="line.30"></a>
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.replication.ReplicationQueueStorage;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.replication.ReplicationUtils;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.slf4j.Logger;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.slf4j.LoggerFactory;<a name="line.42"></a>
-<span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.PeerModificationState;<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span>/**<a name="line.46"></a>
-<span class="sourceLineNo">047</span> * The base class for all replication peer related procedure except sync replication state<a name="line.47"></a>
-<span class="sourceLineNo">048</span> * transition.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>@InterfaceAudience.Private<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public abstract class ModifyPeerProcedure extends AbstractPeerProcedure&lt;PeerModificationState&gt; {<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  private static final Logger LOG = LoggerFactory.getLogger(ModifyPeerProcedure.class);<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  protected static final int UPDATE_LAST_SEQ_ID_BATCH_SIZE = 1000;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  // The sleep interval when waiting table to be enabled or disabled.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  protected static final int SLEEP_INTERVAL_MS = 1000;<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  protected ModifyPeerProcedure() {<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>  protected ModifyPeerProcedure(String peerId) {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    super(peerId);<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>  /**<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * Called before we start the actual processing. The implementation should call the pre CP hook,<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   * and also the pre-check for the peer modification.<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * &lt;p&gt;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   * If an IOException is thrown then we will give up and mark the procedure as failed directly. If<a name="line.71"></a>
-<span class="sourceLineNo">072</span>   * all checks passes then the procedure can not be rolled back any more.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   */<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  protected abstract void prePeerModification(MasterProcedureEnv env)<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      throws IOException, ReplicationException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  protected abstract void updatePeerStorage(MasterProcedureEnv env) throws ReplicationException;<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>   * Called before we finish the procedure. The implementation can do some logging work, and also<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   * call the coprocessor hook if any.<a name="line.81"></a>
-<span class="sourceLineNo">082</span>   * &lt;p&gt;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   * Notice that, since we have already done the actual work, throwing {@code IOException} here will<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   * not fail this procedure, we will just ignore it and finish the procedure as suceeded. If<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * {@code ReplicationException} is thrown we will retry since this usually means we fails to<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * update the peer storage.<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  protected abstract void postPeerModification(MasterProcedureEnv env)<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      throws IOException, ReplicationException;<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  private void releaseLatch() {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    ProcedurePrepareLatch.releaseLatch(latch, this);<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>  /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * Implementation class can override this method. By default we will jump to<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * POST_PEER_MODIFICATION and finish the procedure.<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  protected PeerModificationState nextStateAfterRefresh() {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    return PeerModificationState.POST_PEER_MODIFICATION;<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>  /**<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * The implementation class should override this method if the procedure may enter the serial<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * related states.<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   */<a name="line.106"></a>
-<span class="sourceLineNo">107</span>  protected boolean enablePeerBeforeFinish() {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    throw new UnsupportedOperationException();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  private void refreshPeer(MasterProcedureEnv env, PeerOperationType type) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    addChildProcedure(env.getMasterServices().getServerManager().getOnlineServersList().stream()<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      .map(sn -&gt; new RefreshPeerProcedure(peerId, type, sn))<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      .toArray(RefreshPeerProcedure[]::new));<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>  protected ReplicationPeerConfig getOldPeerConfig() {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return null;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  protected ReplicationPeerConfig getNewPeerConfig() {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    throw new UnsupportedOperationException();<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>  protected void updateLastPushedSequenceIdForSerialPeer(MasterProcedureEnv env)<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      throws IOException, ReplicationException {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    throw new UnsupportedOperationException();<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>  // If the table is in enabling state, we need to wait until it is enabled and then reopen all its<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  // regions.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  private boolean needReopen(TableStateManager tsm, TableName tn) throws IOException {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    for (;;) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      try {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        TableState state = tsm.getTableState(tn);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        if (state.isEnabled()) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          return true;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        if (!state.isEnabling()) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          return false;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        Thread.sleep(SLEEP_INTERVAL_MS);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      } catch (TableStateNotFoundException e) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        return false;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      } catch (InterruptedException e) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        throw (IOException) new InterruptedIOException(e.getMessage()).initCause(e);<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>  }<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private void reopenRegions(MasterProcedureEnv env) throws IOException {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    ReplicationPeerConfig peerConfig = getNewPeerConfig();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    ReplicationPeerConfig oldPeerConfig = getOldPeerConfig();<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    TableStateManager tsm = env.getMasterServices().getTableStateManager();<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    for (TableDescriptor td : env.getMasterServices().getTableDescriptors().getAll().values()) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      if (!td.hasGlobalReplicationScope()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        continue;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      TableName tn = td.getTableName();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      if (!ReplicationUtils.contains(peerConfig, tn)) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        continue;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      if (oldPeerConfig != null &amp;&amp; oldPeerConfig.isSerial() &amp;&amp;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        ReplicationUtils.contains(oldPeerConfig, tn)) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        continue;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      if (needReopen(tsm, tn)) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        addChildProcedure(env.getAssignmentManager().createReopenProcedures(<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          env.getAssignmentManager().getRegionStates().getRegionsOfTable(tn)));<a name="line.169"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.master.procedure.ReopenTableRegionsProcedure;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.replication.ReplicationQueueStorage;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.replication.ReplicationUtils;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.slf4j.Logger;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.slf4j.LoggerFactory;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.PeerModificationState;<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> * The base class for all replication peer related procedure except sync replication state<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * transition.<a name="line.49"></a>
+<span class="sourceLineNo">050</span> */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>@InterfaceAudience.Private<a name="line.51"></a>
+<span class="sourceLineNo">052</span>public abstract class ModifyPeerProcedure extends AbstractPeerProcedure&lt;PeerModificationState&gt; {<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  private static final Logger LOG = LoggerFactory.getLogger(ModifyPeerProcedure.class);<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  protected static final int UPDATE_LAST_SEQ_ID_BATCH_SIZE = 1000;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  // The sleep interval when waiting table to be enabled or disabled.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  protected static final int SLEEP_INTERVAL_MS = 1000;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  protected ModifyPeerProcedure() {<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>  protected ModifyPeerProcedure(String peerId) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    super(peerId);<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>  /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   * Called before we start the actual processing. The implementation should call the pre CP hook,<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   * and also the pre-check for the peer modification.<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   * &lt;p&gt;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * If an IOException is thrown then we will give up and mark the procedure as failed directly. If<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * all checks passes then the procedure can not be rolled back any more.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  protected abstract void prePeerModification(MasterProcedureEnv env)<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      throws IOException, ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  protected abstract void updatePeerStorage(MasterProcedureEnv env) throws ReplicationException;<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>   * Called before we finish the procedure. The implementation can do some logging work, and also<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   * call the coprocessor hook if any.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * &lt;p&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   * Notice that, since we have already done the actual work, throwing {@code IOException} here will<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * not fail this procedure, we will just ignore it and finish the procedure as suceeded. If<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * {@code ReplicationException} is thrown we will retry since this usually means we fails to<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * update the peer storage.<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  protected abstract void postPeerModification(MasterProcedureEnv env)<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      throws IOException, ReplicationException;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private void releaseLatch() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ProcedurePrepareLatch.releaseLatch(latch, this);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * Implementation class can override this method. By default we will jump to<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * POST_PEER_MODIFICATION and finish the procedure.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  protected PeerModificationState nextStateAfterRefresh() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    return PeerModificationState.POST_PEER_MODIFICATION;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  /**<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   * The implementation class should override this method if the procedure may enter the serial<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   * related states.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  protected boolean enablePeerBeforeFinish() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    throw new UnsupportedOperationException();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private void refreshPeer(MasterProcedureEnv env, PeerOperationType type) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    addChildProcedure(env.getMasterServices().getServerManager().getOnlineServersList().stream()<a name="line.113"></a>
+<span class="sourceLineNo">114</span>      .map(sn -&gt; new RefreshPeerProcedure(peerId, type, sn))<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      .toArray(RefreshPeerProcedure[]::new));<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>  protected ReplicationPeerConfig getOldPeerConfig() {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    return null;<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>  protected ReplicationPeerConfig getNewPeerConfig() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    throw new UnsupportedOperationException();<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>  protected void updateLastPushedSequenceIdForSerialPeer(MasterProcedureEnv env)<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      throws IOException, ReplicationException {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    throw new UnsupportedOperationException();<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>  // If the table is in enabling state, we need to wait until it is enabled and then reopen all its<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  // regions.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>  private boolean needReopen(TableStateManager tsm, TableName tn) throws IOException {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    for (;;) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      try {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        TableState state = tsm.getTableState(tn);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        if (state.isEnabled()) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>          return true;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        if (!state.isEnabling()) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          return false;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        Thread.sleep(SLEEP_INTERVAL_MS);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      } catch (TableStateNotFoundException e) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        return false;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      } catch (InterruptedException e) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        throw (IOException) new InterruptedIOException(e.getMessage()).initCause(e);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>  private void reopenRegions(MasterProcedureEnv env) throws IOException {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    ReplicationPeerConfig peerConfig = getNewPeerConfig();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    ReplicationPeerConfig oldPeerConfig = getOldPeerConfig();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    TableStateManager tsm = env.getMasterServices().getTableStateManager();<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    for (TableDescriptor td : env.getMasterServices().getTableDescriptors().getAll().values()) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      if (!td.hasGlobalReplicationScope()) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        continue;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      TableName tn = td.getTableName();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      if (!ReplicationUtils.contains(peerConfig, tn)) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        continue;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      if (oldPeerConfig != null &amp;&amp; oldPeerConfig.isSerial() &amp;&amp;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        ReplicationUtils.contains(oldPeerConfig, tn)) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        continue;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      if (needReopen(tsm, tn)) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        addChildProcedure(new ReopenTableRegionsProcedure(tn));<a name="line.169"></a>
 <span class="sourceLineNo">170</span>      }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>    }<a name="line.171"></a>
 <span class="sourceLineNo">172</span>  }<a name="line.172"></a>


[27/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="line.1

<TRUNCATED>

[10/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
index d7e2bf4..dbfd9ee 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
@@ -103,2497 +103,2454 @@
 <span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.95"></a>
 <span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.96"></a>
 <span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.net.Address;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.quotas.GlobalQuotaSettings;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.regionserver.BloomType;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.regionserver.InternalScanner;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.regionserver.Region;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.regionserver.RegionScanner;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.regionserver.ScanType;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.regionserver.ScannerContext;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.regionserver.Store;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.replication.ReplicationEndpoint;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.security.User;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.security.access.Permission.Action;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.util.ByteRange;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.util.SimpleMutableByteRange;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.wal.WALEdit;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.slf4j.Logger;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.slf4j.LoggerFactory;<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hbase.thirdparty.com.google.common.collect.MapMaker;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hbase.thirdparty.com.google.common.collect.Sets;<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> * Provides basic authorization checks for data access and administrative<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * operations.<a name="line.143"></a>
-<span class="sourceLineNo">144</span> *<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * &lt;p&gt;<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * {@code AccessController} performs authorization checks for HBase operations<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * based on:<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * &lt;/p&gt;<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;ul&gt;<a name="line.149"></a>
-<span class="sourceLineNo">150</span> *   &lt;li&gt;the identity of the user performing the operation&lt;/li&gt;<a name="line.150"></a>
-<span class="sourceLineNo">151</span> *   &lt;li&gt;the scope over which the operation is performed, in increasing<a name="line.151"></a>
-<span class="sourceLineNo">152</span> *   specificity: global, table, column family, or qualifier&lt;/li&gt;<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *   &lt;li&gt;the type of action being performed (as mapped to<a name="line.153"></a>
-<span class="sourceLineNo">154</span> *   {@link Permission.Action} values)&lt;/li&gt;<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * &lt;/ul&gt;<a name="line.155"></a>
-<span class="sourceLineNo">156</span> * &lt;p&gt;<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * If the authorization check fails, an {@link AccessDeniedException}<a name="line.157"></a>
-<span class="sourceLineNo">158</span> * will be thrown for the operation.<a name="line.158"></a>
-<span class="sourceLineNo">159</span> * &lt;/p&gt;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> *<a name="line.160"></a>
-<span class="sourceLineNo">161</span> * &lt;p&gt;<a name="line.161"></a>
-<span class="sourceLineNo">162</span> * To perform authorization checks, {@code AccessController} relies on the<a name="line.162"></a>
-<span class="sourceLineNo">163</span> * RpcServerEngine being loaded to provide<a name="line.163"></a>
-<span class="sourceLineNo">164</span> * the user identities for remote requests.<a name="line.164"></a>
-<span class="sourceLineNo">165</span> * &lt;/p&gt;<a name="line.165"></a>
-<span class="sourceLineNo">166</span> *<a name="line.166"></a>
-<span class="sourceLineNo">167</span> * &lt;p&gt;<a name="line.167"></a>
-<span class="sourceLineNo">168</span> * The access control lists used for authorization can be manipulated via the<a name="line.168"></a>
-<span class="sourceLineNo">169</span> * exposed {@link AccessControlService} Interface implementation, and the associated<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * {@code grant}, {@code revoke}, and {@code user_permission} HBase shell<a name="line.170"></a>
-<span class="sourceLineNo">171</span> * commands.<a name="line.171"></a>
-<span class="sourceLineNo">172</span> * &lt;/p&gt;<a name="line.172"></a>
-<span class="sourceLineNo">173</span> */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>@CoreCoprocessor<a name="line.174"></a>
-<span class="sourceLineNo">175</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.175"></a>
-<span class="sourceLineNo">176</span>public class AccessController implements MasterCoprocessor, RegionCoprocessor,<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    RegionServerCoprocessor, AccessControlService.Interface,<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    MasterObserver, RegionObserver, RegionServerObserver, EndpointObserver, BulkLoadObserver {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  // TODO: encapsulate observer functions into separate class/sub-class.<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  private static final Logger LOG = LoggerFactory.getLogger(AccessController.class);<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  private static final Logger AUDITLOG =<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    LoggerFactory.getLogger("SecurityLogger."+AccessController.class.getName());<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  private static final String CHECK_COVERING_PERM = "check_covering_perm";<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final String TAG_CHECK_PASSED = "tag_check_passed";<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  private static final byte[] TRUE = Bytes.toBytes(true);<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private AccessChecker accessChecker;<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /** flags if we are running on a region of the _acl_ table */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private boolean aclRegion = false;<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  /** defined only for Endpoint implementation, so it can have way to<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   access region services */<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  private RegionCoprocessorEnvironment regionEnv;<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  /** Mapping of scanner instances to the user who created them */<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private Map&lt;InternalScanner,String&gt; scannerOwners =<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      new MapMaker().weakKeys().makeMap();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  private Map&lt;TableName, List&lt;UserPermission&gt;&gt; tableAcls;<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  /** Provider for mapping principal names to Users */<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private UserProvider userProvider;<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  /** if we are active, usually false, only true if "hbase.security.authorization"<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   has been set to true in site configuration */<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private boolean authorizationEnabled;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  /** if we are able to support cell ACLs */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  private boolean cellFeaturesEnabled;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /** if we should check EXEC permissions */<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private boolean shouldCheckExecPermission;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  /** if we should terminate access checks early as soon as table or CF grants<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    allow access; pre-0.98 compatible behavior */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  private boolean compatibleEarlyTermination;<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  /** if we have been successfully initialized */<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  private volatile boolean initialized = false;<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>  /** if the ACL table is available, only relevant in the master */<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private volatile boolean aclTabAvailable = false;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public static boolean isCellAuthorizationSupported(Configuration conf) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    return AccessChecker.isAuthorizationSupported(conf) &amp;&amp;<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        (HFile.getFormatVersion(conf) &gt;= HFile.MIN_FORMAT_VERSION_WITH_TAGS);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>  public Region getRegion() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    return regionEnv != null ? regionEnv.getRegion() : null;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  public TableAuthManager getAuthManager() {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    return accessChecker.getAuthManager();<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  private void initialize(RegionCoprocessorEnvironment e) throws IOException {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    final Region region = e.getRegion();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    Configuration conf = e.getConfiguration();<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    Map&lt;byte[], ListMultimap&lt;String,TablePermission&gt;&gt; tables =<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        AccessControlLists.loadAll(region);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    // For each table, write out the table's permissions to the respective<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    // znode for that table.<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    for (Map.Entry&lt;byte[], ListMultimap&lt;String,TablePermission&gt;&gt; t:<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      tables.entrySet()) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      byte[] entry = t.getKey();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      ListMultimap&lt;String,TablePermission&gt; perms = t.getValue();<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, conf);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, serialized);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    }<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    initialized = true;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>  /**<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Writes all table ACLs for the tables in the given Map up into ZooKeeper<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * znodes.  This is called to synchronize ACL changes following {@code _acl_}<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * table updates.<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  private void updateACL(RegionCoprocessorEnvironment e,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      final Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    Set&lt;byte[]&gt; entries = new TreeSet&lt;&gt;(Bytes.BYTES_RAWCOMPARATOR);<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; f : familyMap.entrySet()) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      List&lt;Cell&gt; cells = f.getValue();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      for (Cell cell: cells) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        if (CellUtil.matchingFamily(cell, AccessControlLists.ACL_LIST_FAMILY)) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          entries.add(CellUtil.cloneRow(cell));<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    ZKPermissionWatcher zkw = getAuthManager().getZKPermissionWatcher();<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    Configuration conf = regionEnv.getConfiguration();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    byte [] currentEntry = null;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    // TODO: Here we are already on the ACL region. (And it is single<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    // region) We can even just get the region from the env and do get<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // directly. The short circuit connection would avoid the RPC overhead<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    // so no socket communication, req write/read ..  But we have the PB<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    // to and fro conversion overhead. get req is converted to PB req<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    // and results are converted to PB results 1st and then to POJOs<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    // again. We could have avoided such at least in ACL table context..<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    try (Table t = e.getConnection().getTable(AccessControlLists.ACL_TABLE_NAME)) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      for (byte[] entry : entries) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        currentEntry = entry;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        ListMultimap&lt;String, TablePermission&gt; perms =<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            AccessControlLists.getPermissions(conf, entry, t);<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, conf);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        zkw.writeToZookeeper(entry, serialized);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    } catch(IOException ex) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          LOG.error("Failed updating permissions mirror for '" +<a name="line.292"></a>
-<span class="sourceLineNo">293</span>                  (currentEntry == null? "null": Bytes.toString(currentEntry)) + "'", ex);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * Check the current user for authorization to perform a specific action<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * against the given set of row data.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   *<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * &lt;p&gt;Note: Ordering of the authorization checks<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   * has been carefully optimized to short-circuit the most common requests<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   * and minimize the amount of processing required.&lt;/p&gt;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>   *<a name="line.304"></a>
-<span class="sourceLineNo">305</span>   * @param permRequest the action being requested<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * @param e the coprocessor environment<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * @param families the map of column families to qualifiers present in<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   * the request<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   * @return an authorization result<a name="line.309"></a>
-<span class="sourceLineNo">310</span>   */<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  private AuthResult permissionGranted(String request, User user, Action permRequest,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      RegionCoprocessorEnvironment e,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      Map&lt;byte [], ? extends Collection&lt;?&gt;&gt; families) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    RegionInfo hri = e.getRegion().getRegionInfo();<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    TableName tableName = hri.getTable();<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    // 1. All users need read access to hbase:meta table.<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // this is a very common operation, so deal with it quickly.<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    if (hri.isMetaRegion()) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      if (permRequest == Action.READ) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        return AuthResult.allow(request, "All users allowed", user,<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          permRequest, tableName, families);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span>    if (user == null) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      return AuthResult.deny(request, "No user associated with request!", null,<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        permRequest, tableName, families);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>    // 2. check for the table-level, if successful we can short-circuit<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    if (getAuthManager().authorize(user, tableName, (byte[])null, permRequest)) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      return AuthResult.allow(request, "Table permission granted", user,<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        permRequest, tableName, families);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>    // 3. check permissions against the requested families<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    if (families != null &amp;&amp; families.size() &gt; 0) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      // all families must pass<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      for (Map.Entry&lt;byte [], ? extends Collection&lt;?&gt;&gt; family : families.entrySet()) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        // a) check for family level access<a name="line.341"></a>
-<span class="sourceLineNo">342</span>        if (getAuthManager().authorize(user, tableName, family.getKey(),<a name="line.342"></a>
-<span class="sourceLineNo">343</span>            permRequest)) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>          continue;  // family-level permission overrides per-qualifier<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>        // b) qualifier level access can still succeed<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        if ((family.getValue() != null) &amp;&amp; (family.getValue().size() &gt; 0)) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>          if (family.getValue() instanceof Set) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>            // for each qualifier of the family<a name="line.350"></a>
-<span class="sourceLineNo">351</span>            Set&lt;byte[]&gt; familySet = (Set&lt;byte[]&gt;)family.getValue();<a name="line.351"></a>
-<span class="sourceLineNo">352</span>            for (byte[] qualifier : familySet) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>              if (!getAuthManager().authorize(user, tableName, family.getKey(),<a name="line.353"></a>
-<span class="sourceLineNo">354</span>                                         qualifier, permRequest)) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>                return AuthResult.deny(request, "Failed qualifier check", user,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>                    permRequest, tableName, makeFamilyMap(family.getKey(), qualifier));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>              }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>            }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>          } else if (family.getValue() instanceof List) { // List&lt;Cell&gt;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>            List&lt;Cell&gt; cellList = (List&lt;Cell&gt;)family.getValue();<a name="line.360"></a>
-<span class="sourceLineNo">361</span>            for (Cell cell : cellList) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>              if (!getAuthManager().authorize(user, tableName, family.getKey(),<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                CellUtil.cloneQualifier(cell), permRequest)) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                return AuthResult.deny(request, "Failed qualifier check", user, permRequest,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  tableName, makeFamilyMap(family.getKey(), CellUtil.cloneQualifier(cell)));<a name="line.365"></a>
-<span class="sourceLineNo">366</span>              }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>            }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        } else {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          // no qualifiers and family-level check already failed<a name="line.370"></a>
-<span class="sourceLineNo">371</span>          return AuthResult.deny(request, "Failed family check", user, permRequest,<a name="line.371"></a>
-<span class="sourceLineNo">372</span>              tableName, makeFamilyMap(family.getKey(), null));<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>      // all family checks passed<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      return AuthResult.allow(request, "All family checks passed", user, permRequest,<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          tableName, families);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>    // 4. no families to check and table level access failed<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    return AuthResult.deny(request, "No families to check and table permission failed",<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        user, permRequest, tableName, families);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>  /**<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   * Check the current user for authorization to perform a specific action<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * against the given set of row data.<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * @param opType the operation type<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * @param user the user<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * @param e the coprocessor environment<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * @param families the map of column families to qualifiers present in<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * the request<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @param actions the desired actions<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * @return an authorization result<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   */<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  private AuthResult permissionGranted(OpType opType, User user, RegionCoprocessorEnvironment e,<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      Map&lt;byte [], ? extends Collection&lt;?&gt;&gt; families, Action... actions) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    AuthResult result = null;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    for (Action action: actions) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      result = permissionGranted(opType.toString(), user, action, e, families);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      if (!result.isAllowed()) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        return result;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    return result;<a name="line.406"></a>
-<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  public void requireAccess(ObserverContext&lt;?&gt; ctx, String request, TableName tableName,<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      Action... permissions) throws IOException {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    accessChecker.requireAccess(getActiveUser(ctx), request, tableName, permissions);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>  public void requirePermission(ObserverContext&lt;?&gt; ctx, String request,<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      Action perm) throws IOException {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    accessChecker.requirePermission(getActiveUser(ctx), request, perm);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  public void requireGlobalPermission(ObserverContext&lt;?&gt; ctx, String request,<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      Action perm, TableName tableName,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      Map&lt;byte[], ? extends Collection&lt;byte[]&gt;&gt; familyMap) throws IOException {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    accessChecker.requireGlobalPermission(getActiveUser(ctx),<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        request, perm,tableName, familyMap);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public void requireGlobalPermission(ObserverContext&lt;?&gt; ctx, String request,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      Action perm, String namespace) throws IOException {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    accessChecker.requireGlobalPermission(getActiveUser(ctx),<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        request, perm, namespace);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public void requireNamespacePermission(ObserverContext&lt;?&gt; ctx, String request, String namespace,<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      Action... permissions) throws IOException {<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    accessChecker.requireNamespacePermission(getActiveUser(ctx),<a name="line.434"></a>
-<span class="sourceLineNo">435</span>        request, namespace, permissions);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public void requireNamespacePermission(ObserverContext&lt;?&gt; ctx, String request, String namespace,<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      TableName tableName, Map&lt;byte[], ? extends Collection&lt;byte[]&gt;&gt; familyMap,<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      Action... permissions) throws IOException {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    accessChecker.requireNamespacePermission(getActiveUser(ctx),<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        request, namespace, tableName, familyMap,<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        permissions);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  }<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public void requirePermission(ObserverContext&lt;?&gt; ctx, String request, TableName tableName,<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      byte[] family, byte[] qualifier, Action... permissions) throws IOException {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    accessChecker.requirePermission(getActiveUser(ctx), request,<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        tableName, family, qualifier, permissions);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  public void requireTablePermission(ObserverContext&lt;?&gt; ctx, String request,<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      TableName tableName,byte[] family, byte[] qualifier,<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      Action... permissions) throws IOException {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    accessChecker.requireTablePermission(getActiveUser(ctx),<a name="line.455"></a>
-<span class="sourceLineNo">456</span>        request, tableName, family, qualifier, permissions);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  }<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public void checkLockPermissions(ObserverContext&lt;?&gt; ctx, String namespace,<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      TableName tableName, RegionInfo[] regionInfos, String reason)<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      throws IOException {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    accessChecker.checkLockPermissions(getActiveUser(ctx),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        namespace, tableName, regionInfos, reason);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  /**<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * Returns &lt;code&gt;true&lt;/code&gt; if the current user is allowed the given action<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   * over at least one of the column qualifiers in the given column families.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   */<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private boolean hasFamilyQualifierPermission(User user,<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      Action perm,<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      RegionCoprocessorEnvironment env,<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      Map&lt;byte[], ? extends Collection&lt;byte[]&gt;&gt; familyMap)<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    throws IOException {<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    RegionInfo hri = env.getRegion().getRegionInfo();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    TableName tableName = hri.getTable();<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>    if (user == null) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      return false;<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>    if (familyMap != null &amp;&amp; familyMap.size() &gt; 0) {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      // at least one family must be allowed<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      for (Map.Entry&lt;byte[], ? extends Collection&lt;byte[]&gt;&gt; family :<a name="line.484"></a>
-<span class="sourceLineNo">485</span>          familyMap.entrySet()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        if (family.getValue() != null &amp;&amp; !family.getValue().isEmpty()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>          for (byte[] qualifier : family.getValue()) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>            if (getAuthManager().matchPermission(user, tableName,<a name="line.488"></a>
-<span class="sourceLineNo">489</span>                family.getKey(), qualifier, perm)) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              return true;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>            }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>          }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>        } else {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          if (getAuthManager().matchPermission(user, tableName, family.getKey(),<a name="line.494"></a>
-<span class="sourceLineNo">495</span>              perm)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            return true;<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        }<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    } else if (LOG.isDebugEnabled()) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      LOG.debug("Empty family map passed for permission check");<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>    return false;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  }<a name="line.505"></a>
-<span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>  private enum OpType {<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    GET("get"),<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    EXISTS("exists"),<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    SCAN("scan"),<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    PUT("put"),<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    DELETE("delete"),<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    CHECK_AND_PUT("checkAndPut"),<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    CHECK_AND_DELETE("checkAndDelete"),<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    INCREMENT_COLUMN_VALUE("incrementColumnValue"),<a name="line.515"></a>
-<span class="sourceLineNo">516</span>    APPEND("append"),<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    INCREMENT("increment");<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    private String type;<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>    private OpType(String type) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      this.type = type;<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    }<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    @Override<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    public String toString() {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      return type;<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span>  /**<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * Determine if cell ACLs covered by the operation grant access. This is expensive.<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @return false if cell ACLs failed to grant access, true otherwise<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @throws IOException<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   */<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  private boolean checkCoveringPermission(User user, OpType request, RegionCoprocessorEnvironment e,<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      byte[] row, Map&lt;byte[], ? extends Collection&lt;?&gt;&gt; familyMap, long opTs, Action... actions)<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throws IOException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    if (!cellFeaturesEnabled) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      return false;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    long cellGrants = 0;<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    long latestCellTs = 0;<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    Get get = new Get(row);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    // Only in case of Put/Delete op, consider TS within cell (if set for individual cells).<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    // When every cell, within a Mutation, can be linked with diff TS we can not rely on only one<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    // version. We have to get every cell version and check its TS against the TS asked for in<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // Mutation and skip those Cells which is outside this Mutation TS.In case of Put, we have to<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    // consider only one such passing cell. In case of Delete we have to consider all the cell<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    // versions under this passing version. When Delete Mutation contains columns which are a<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    // version delete just consider only one version for those column cells.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    boolean considerCellTs  = (request == OpType.PUT || request == OpType.DELETE);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    if (considerCellTs) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      get.setMaxVersions();<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    } else {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      get.setMaxVersions(1);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    }<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    boolean diffCellTsFromOpTs = false;<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    for (Map.Entry&lt;byte[], ? extends Collection&lt;?&gt;&gt; entry: familyMap.entrySet()) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      byte[] col = entry.getKey();<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      // TODO: HBASE-7114 could possibly unify the collection type in family<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      // maps so we would not need to do this<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      if (entry.getValue() instanceof Set) {<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        Set&lt;byte[]&gt; set = (Set&lt;byte[]&gt;)entry.getValue();<a name="line.564"></a>
-<span class="sourceLineNo">565</span>        if (set == null || set.isEmpty()) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>          get.addFamily(col);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>        } else {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          for (byte[] qual: set) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>            get.addColumn(col, qual);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      } else if (entry.getValue() instanceof List) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>        List&lt;Cell&gt; list = (List&lt;Cell&gt;)entry.getValue();<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        if (list == null || list.isEmpty()) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>          get.addFamily(col);<a name="line.575"></a>
-<span class="sourceLineNo">576</span>        } else {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>          // In case of family delete, a Cell will be added into the list with Qualifier as null.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>          for (Cell cell : list) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>            if (cell.getQualifierLength() == 0<a name="line.579"></a>
-<span class="sourceLineNo">580</span>                &amp;&amp; (cell.getTypeByte() == Type.DeleteFamily.getCode()<a name="line.580"></a>
-<span class="sourceLineNo">581</span>                || cell.getTypeByte() == Type.DeleteFamilyVersion.getCode())) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>              get.addFamily(col);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>            } else {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>              get.addColumn(col, CellUtil.cloneQualifier(cell));<a name="line.584"></a>
-<span class="sourceLineNo">585</span>            }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>            if (considerCellTs) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>              long cellTs = cell.getTimestamp();<a name="line.587"></a>
-<span class="sourceLineNo">588</span>              latestCellTs = Math.max(latestCellTs, cellTs);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>              diffCellTsFromOpTs = diffCellTsFromOpTs || (opTs != cellTs);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>            }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>          }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      } else if (entry.getValue() == null) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        get.addFamily(col);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      } else {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        throw new RuntimeException("Unhandled collection type " +<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          entry.getValue().getClass().getName());<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    }<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    // We want to avoid looking into the future. So, if the cells of the<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    // operation specify a timestamp, or the operation itself specifies a<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    // timestamp, then we use the maximum ts found. Otherwise, we bound<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    // the Get to the current server time. We add 1 to the timerange since<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    // the upper bound of a timerange is exclusive yet we need to examine<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    // any cells found there inclusively.<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    long latestTs = Math.max(opTs, latestCellTs);<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    if (latestTs == 0 || latestTs == HConstants.LATEST_TIMESTAMP) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      latestTs = EnvironmentEdgeManager.currentTime();<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    }<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    get.setTimeRange(0, latestTs + 1);<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    // In case of Put operation we set to read all versions. This was done to consider the case<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    // where columns are added with TS other than the Mutation TS. But normally this wont be the<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // case with Put. There no need to get all versions but get latest version only.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (!diffCellTsFromOpTs &amp;&amp; request == OpType.PUT) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      get.setMaxVersions(1);<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    if (LOG.isTraceEnabled()) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      LOG.trace("Scanning for cells with " + get);<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    // This Map is identical to familyMap. The key is a BR rather than byte[].<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    // It will be easy to do gets over this new Map as we can create get keys over the Cell cf by<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    // new SimpleByteRange(cell.familyArray, cell.familyOffset, cell.familyLen)<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    Map&lt;ByteRange, List&lt;Cell&gt;&gt; familyMap1 = new HashMap&lt;&gt;();<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    for (Entry&lt;byte[], ? extends Collection&lt;?&gt;&gt; entry : familyMap.entrySet()) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      if (entry.getValue() instanceof List) {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>        familyMap1.put(new SimpleMutableByteRange(entry.getKey()), (List&lt;Cell&gt;) entry.getValue());<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    RegionScanner scanner = getRegion(e).getScanner(new Scan(get));<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    List&lt;Cell&gt; cells = Lists.newArrayList();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    Cell prevCell = null;<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    ByteRange curFam = new SimpleMutableByteRange();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    boolean curColAllVersions = (request == OpType.DELETE);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    long curColCheckTs = opTs;<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    boolean foundColumn = false;<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    try {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      boolean more = false;<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      ScannerContext scannerContext = ScannerContext.newBuilder().setBatchLimit(1).build();<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>      do {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>        cells.clear();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>        // scan with limit as 1 to hold down memory use on wide rows<a name="line.642"></a>
-<span class="sourceLineNo">643</span>        more = scanner.next(cells, scannerContext);<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        for (Cell cell: cells) {<a name="line.644"></a>
-<span class="sourceLineNo">645</span>          if (LOG.isTraceEnabled()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>            LOG.trace("Found cell " + cell);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          }<a name="line.647"></a>
-<span class="sourceLineNo">648</span>          boolean colChange = prevCell == null || !CellUtil.matchingColumn(prevCell, cell);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          if (colChange) foundColumn = false;<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          prevCell = cell;<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!curColAllVersions &amp;&amp; foundColumn) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            continue;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>          }<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          if (colChange &amp;&amp; considerCellTs) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>            curFam.set(cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength());<a name="line.655"></a>
-<span class="sourceLineNo">656</span>            List&lt;Cell&gt; cols = familyMap1.get(curFam);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>            for (Cell col : cols) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>              // null/empty qualifier is used to denote a Family delete. The TS and delete type<a name="line.658"></a>
-<span class="sourceLineNo">659</span>              // associated with this is applicable for all columns within the family. That is<a name="line.659"></a>
-<span class="sourceLineNo">660</span>              // why the below (col.getQualifierLength() == 0) check.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>              if ((col.getQualifierLength() == 0 &amp;&amp; request == OpType.DELETE)<a name="line.661"></a>
-<span class="sourceLineNo">662</span>                  || CellUtil.matchingQualifier(cell, col)) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>                byte type = col.getTypeByte();<a name="line.663"></a>
-<span class="sourceLineNo">664</span>                if (considerCellTs) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>                  curColCheckTs = col.getTimestamp();<a name="line.665"></a>
-<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
-<span class="sourceLineNo">667</span>                // For a Delete op we pass allVersions as true. When a Delete Mutation contains<a name="line.667"></a>
-<span class="sourceLineNo">668</span>                // a version delete for a column no need to check all the covering cells within<a name="line.668"></a>
-<span class="sourceLineNo">669</span>                // that column. Check all versions when Type is DeleteColumn or DeleteFamily<a name="line.669"></a>
-<span class="sourceLineNo">670</span>                // One version delete types are Delete/DeleteFamilyVersion<a name="line.670"></a>
-<span class="sourceLineNo">671</span>                curColAllVersions = (KeyValue.Type.DeleteColumn.getCode() == type)<a name="line.671"></a>
-<span class="sourceLineNo">672</span>                    || (KeyValue.Type.DeleteFamily.getCode() == type);<a name="line.672"></a>
-<span class="sourceLineNo">673</span>                break;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>              }<a name="line.674"></a>
-<span class="sourceLineNo">675</span>            }<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          }<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (cell.getTimestamp() &gt; curColCheckTs) {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>            // Just ignore this cell. This is not a covering cell.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>            continue;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>          foundColumn = true;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>          for (Action action: actions) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>            // Are there permissions for this user for the cell?<a name="line.683"></a>
-<span class="sourceLineNo">684</span>            if (!getAuthManager().authorize(user, getTableName(e), cell, action)) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>              // We can stop if the cell ACL denies access<a name="line.685"></a>
-<span class="sourceLineNo">686</span>              return false;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>            }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>          }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          cellGrants++;<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      } while (more);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    } catch (AccessDeniedException ex) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      throw ex;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    } catch (IOException ex) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      LOG.error("Exception while getting cells to calculate covering permission", ex);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    } finally {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>      scanner.close();<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    }<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    // We should not authorize unless we have found one or more cell ACLs that<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    // grant access. This code is used to check for additional permissions<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    // after no table or CF grants are found.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    return cellGrants &gt; 0;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>  private static void addCellPermissions(final byte[] perms, Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap) {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>    // Iterate over the entries in the familyMap, replacing the cells therein<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    // with new cells including the ACL data<a name="line.707"></a>
-<span class="sourceLineNo">708</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e: familyMap.entrySet()) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>      List&lt;Cell&gt; newCells = Lists.newArrayList();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      for (Cell cell: e.getValue()) {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>        // Prepend the supplied perms in a new ACL tag to an update list of tags for the cell<a name="line.711"></a>
-<span class="sourceLineNo">712</span>        List&lt;Tag&gt; tags = new ArrayList&lt;&gt;();<a name="line.712"></a>
-<span class="sourceLineNo">713</span>        tags.add(new ArrayBackedTag(AccessControlLists.ACL_TAG_TYPE, perms));<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        Iterator&lt;Tag&gt; tagIterator = PrivateCellUtil.tagsIterator(cell);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>        while (tagIterator.hasNext()) {<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          tags.add(tagIterator.next());<a name="line.716"></a>
-<span class="sourceLineNo">717</span>        }<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        newCells.add(PrivateCellUtil.createCell(cell, tags));<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      }<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      // This is supposed to be safe, won't CME<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      e.setValue(newCells);<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    }<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  // Checks whether incoming cells contain any tag with type as ACL_TAG_TYPE. This tag<a name="line.725"></a>
-<span class="sourceLineNo">726</span>  // type is reserved and should not be explicitly set by user.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  private void checkForReservedTagPresence(User user, Mutation m) throws IOException {<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    // No need to check if we're not going to throw<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    if (!authorizationEnabled) {<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      m.setAttribute(TAG_CHECK_PASSED, TRUE);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      return;<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    }<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Superusers are allowed to store cells unconditionally.<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    if (Superusers.isSuperUser(user)) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      m.setAttribute(TAG_CHECK_PASSED, TRUE);<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      return;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    }<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    // We already checked (prePut vs preBatchMutation)<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    if (m.getAttribute(TAG_CHECK_PASSED) != null) {<a name="line.739"></a>
-<span class="sourceLineNo">740</span>      return;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    }<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>      Iterator&lt;Tag&gt; tagsItr = PrivateCellUtil.tagsIterator(cellScanner.current());<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      while (tagsItr.hasNext()) {<a name="line.744"></a>
-<span class="sourceLineNo">745</span>        if (tagsItr.next().getType() == AccessControlLists.ACL_TAG_TYPE) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          throw new AccessDeniedException("Mutation contains cell with reserved type tag");<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>      }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    }<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    m.setAttribute(TAG_CHECK_PASSED, TRUE);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>  /* ---- MasterObserver implementation ---- */<a name="line.753"></a>
-<span class="sourceLineNo">754</span>  @Override<a name="line.754"></a>
-<span class="sourceLineNo">755</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    CompoundConfiguration conf = new CompoundConfiguration();<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    conf.add(env.getConfiguration());<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    authorizationEnabled = AccessChecker.isAuthorizationSupported(conf);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    if (!authorizationEnabled) {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      LOG.warn("AccessController has been loaded with authorization checks DISABLED!");<a name="line.761"></a>
-<span class="sourceLineNo">762</span>    }<a name="line.762"></a>
-<span class="sourceLineNo">763</span><a name="line.763"></a>
-<span class="sourceLineNo">764</span>    shouldCheckExecPermission = conf.getBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY,<a name="line.764"></a>
-<span class="sourceLineNo">765</span>      AccessControlConstants.DEFAULT_EXEC_PERMISSION_CHECKS);<a name="line.765"></a>
-<span class="sourceLineNo">766</span><a name="line.766"></a>
-<span class="sourceLineNo">767</span>    cellFeaturesEnabled = (HFile.getFormatVersion(conf) &gt;= HFile.MIN_FORMAT_VERSION_WITH_TAGS);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    if (!cellFeaturesEnabled) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      LOG.info("A minimum HFile version of " + HFile.MIN_FORMAT_VERSION_WITH_TAGS<a name="line.769"></a>
-<span class="sourceLineNo">770</span>          + " is required to persist cell ACLs. Consider setting " + HFile.FORMAT_VERSION_KEY<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          + " accordingly.");<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    }<a name="line.772"></a>
-<span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>    ZKWatcher zk = null;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    if (env instanceof MasterCoprocessorEnvironment) {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      // if running on HMaster<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      MasterCoprocessorEnvironment mEnv = (MasterCoprocessorEnvironment)env;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      if (mEnv instanceof HasMasterServices) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        zk = ((HasMasterServices)mEnv).getMasterServices().getZooKeeper();<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      }<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    } else if (env instanceof RegionServerCoprocessorEnvironment) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      RegionServerCoprocessorEnvironment rsEnv = (RegionServerCoprocessorEnvironment)env;<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      if (rsEnv instanceof HasRegionServerServices) {<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        zk = ((HasRegionServerServices)rsEnv).getRegionServerServices().getZooKeeper();<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    } else if (env instanceof RegionCoprocessorEnvironment) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      // if running at region<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      regionEnv = (RegionCoprocessorEnvironment) env;<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      conf.addBytesMap(regionEnv.getRegion().getTableDescriptor().getValues());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      compatibleEarlyTermination = conf.getBoolean(AccessControlConstants.CF_ATTRIBUTE_EARLY_OUT,<a name="line.790"></a>
-<span class="sourceLineNo">791</span>          AccessControlConstants.DEFAULT_ATTRIBUTE_EARLY_OUT);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      if (regionEnv instanceof HasRegionServerServices) {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>        zk = ((HasRegionServerServices)regionEnv).getRegionServerServices().getZooKeeper();<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    }<a name="line.795"></a>
-<span class="sourceLineNo">796</span><a name="line.796"></a>
-<span class="sourceLineNo">797</span>    // set the user-provider.<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    this.userProvider = UserProvider.instantiate(env.getConfiguration());<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    // Throws RuntimeException if fails to load TableAuthManager so that coprocessor is unloaded.<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    accessChecker = new AccessChecker(env.getConfiguration(), zk);<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    tableAcls = new MapMaker().weakValues().makeMap();<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>  @Override<a name="line.804"></a>
-<span class="sourceLineNo">805</span>  public void stop(CoprocessorEnvironment env) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    accessChecker.stop();<a name="line.806"></a>
-<span class="sourceLineNo">807</span>  }<a name="line.807"></a>
-<span class="sourceLineNo">808</span><a name="line.808"></a>
-<span class="sourceLineNo">809</span>  /*********************************** Observer/Service Getters ***********************************/<a name="line.809"></a>
-<span class="sourceLineNo">810</span>  @Override<a name="line.810"></a>
-<span class="sourceLineNo">811</span>  public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    return Optional.of(this);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  }<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>  @Override<a name="line.815"></a>
-<span class="sourceLineNo">816</span>  public Optional&lt;MasterObserver&gt; getMasterObserver() {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>    return Optional.of(this);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>  }<a name="line.818"></a>
-<span class="sourceLineNo">819</span><a name="line.819"></a>
-<span class="sourceLineNo">820</span>  @Override<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  public Optional&lt;EndpointObserver&gt; getEndpointObserver() {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    return Optional.of(this);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>  }<a name="line.823"></a>
-<span class="sourceLineNo">824</span><a name="line.824"></a>
-<span class="sourceLineNo">825</span>  @Override<a name="line.825"></a>
-<span class="sourceLineNo">826</span>  public Optional&lt;BulkLoadObserver&gt; getBulkLoadObserver() {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    return Optional.of(this);<a name="line.827"></a>
-<span class="sourceLineNo">828</span>  }<a name="line.828"></a>
-<span class="sourceLineNo">829</span><a name="line.829"></a>
-<span class="sourceLineNo">830</span>  @Override<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  public Optional&lt;RegionServerObserver&gt; getRegionServerObserver() {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    return Optional.of(this);<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  @Override<a name="line.835"></a>
-<span class="sourceLineNo">836</span>  public Iterable&lt;Service&gt; getServices() {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    return Collections.singleton(<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        AccessControlProtos.AccessControlService.newReflectiveService(this));<a name="line.838"></a>
-<span class="sourceLineNo">839</span>  }<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span>  /*********************************** Observer implementations ***********************************/<a name="line.841"></a>
-<span class="sourceLineNo">842</span><a name="line.842"></a>
-<span class="sourceLineNo">843</span>  @Override<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    Set&lt;byte[]&gt; families = desc.getColumnFamilyNames();<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    Map&lt;byte[], Set&lt;byte[]&gt;&gt; familyMap = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    for (byte[] family: families) {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      familyMap.put(family, null);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    requireNamespacePermission(c, "createTable",<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        desc.getTableName().getNamespaceAsString(), desc.getTableName(), familyMap, Action.CREATE);<a name="line.852"></a>
-<span class="sourceLineNo">853</span>  }<a name="line.853"></a>
-<span class="sourceLineNo">854</span><a name="line.854"></a>
-<span class="sourceLineNo">855</span>  @Override<a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public void postCompletedCreateTableAction(<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      final TableDescriptor desc,<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      final RegionInfo[] regions) throws IOException {<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // When AC is used, it should be configured as the 1st CP.<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // In Master, the table operations like create, are handled by a Thread pool but the max size<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // for this pool is 1. So if multiple CPs create tables on startup, these creations will happen<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    // sequentially only.<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    // Related code in HMaster#startServiceThreads<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // {code}<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    //   // We depend on there being only one instance of this executor running<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    //   // at a time. To do concurrency, would need fencing of enable/disable of<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    //   // tables.<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    //   this.service.startExecutorService(ExecutorType.MASTER_TABLE_OPERATIONS, 1);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    // {code}<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    // In future if we change this pool to have more threads, then there is a chance for thread,<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    // creating acl table, getting delayed and by that time another table creation got over and<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    // this hook is getting called. In such a case, we will need a wait logic here which will<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    // wait till the acl table is created.<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    if (AccessControlLists.isAclTable(desc)) {<a name="line.875"></a>
-<span class="sourceLineNo">876</span>      this.aclTabAvailable = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>    } else if (!(TableName.NAMESPACE_TABLE_NAME.equals(desc.getTableName()))) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (!aclTabAvailable) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        LOG.warn("Not adding owner permission for table " + desc.getTableName() + ". "<a name="line.879"></a>
-<span class="sourceLineNo">880</span>            + AccessControlLists.ACL_TABLE_NAME + " is not yet created. "<a name="line.880"></a>
-<span class="sourceLineNo">881</span>            + getClass().getSimpleName() + " should be configured as the first Coprocessor");<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      } else {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        String owner = desc.getOwnerString();<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        // default the table owner to current user, if not specified.<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        if (owner == null)<a name="line.885"></a>
-<span class="sourceLineNo">886</span>          owner = getActiveUser(c).getShortName();<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        final UserPermission userperm = new UserPermission(Bytes.toBytes(owner),<a name="line.887"></a>
-<span class="sourceLineNo">888</span>            desc.getTableName(), null, Action.values());<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        // switch to the real hbase master user for doing the RPC on the ACL table<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        User.runAsLoginUser(new PrivilegedExceptionAction&lt;Void&gt;() {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>          @Override<a name="line.891"></a>
-<span class="sourceLineNo">892</span>          public Void run() throws Exception {<a name="line.892"></a>
-<span class="sourceLineNo">893</span>            try (Table table = c.getEnvironment().getConnection().<a name="line.893"></a>
-<span class="sourceLineNo">894</span>                getTable(AccessControlLists.ACL_TABLE_NAME)) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span>              AccessControlLists.addUserPermission(c.getEnvironment().getConfiguration(),<a name="line.895"></a>
-<span class="sourceLineNo">896</span>                  userperm, table);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>            }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>            return null;<a name="line.898"></a>
-<span class="sourceLineNo">899</span>          }<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>    }<a name="line.902"></a>
-<span class="sourceLineNo">903</span>  }<a name="line.903"></a>
-<span class="sourceLineNo">904</span><a name="line.904"></a>
-<span class="sourceLineNo">905</span>  @Override<a name="line.905"></a>
-<span class="sourceLineNo">906</span>  public void preDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c, TableName tableName)<a name="line.906"></a>
-<span class="sourceLineNo">907</span>      throws IOException {<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    requirePermission(c, "deleteTable",<a name="line.908"></a>
-<span class="sourceLineNo">909</span>        tableName, null, null, Action.ADMIN, Action.CREATE);<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>  @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.913"></a>
-<span class="sourceLineNo">914</span>      final TableName tableName) throws IOException {<a name="line.914"></a>
-<span class="sourceLineNo">915</span>    final Configuration conf = c.getEnvironment().getConfiguration();<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    User.runAsLoginUser(new PrivilegedExceptionAction&lt;Void&gt;() {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      @Override<a name="line.917"></a>
-<span class="sourceLineNo">918</span>      public Void run() throws Exception {<a name="line.918"></a>
-<span class="sourceLineNo">919</span>        try (Table table = c.getEnvironment().getConnection().<a name="line.919"></a>
-<span class="sourceLineNo">920</span>            getTable(AccessControlLists.ACL_TABLE_NAME)) {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>          AccessControlLists.removeTablePermissions(conf, tableName, table);<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        return null;<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      }<a name="line.924"></a>
-<span class="sourceLineNo">925</span>    });<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    getAuthManager().getZKPermissionWatcher().deleteTableACLNode(tableName);<a name="line.926"></a>
-<span class="sourceLineNo">927</span>  }<a name="line.927"></a>
-<span class="sourceLineNo">928</span><a name="line.928"></a>
-<span class="sourceLineNo">929</span>  @Override<a name="line.929"></a>
-<span class="sourceLineNo">930</span>  public void preTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      final TableName tableName) throws IOException {<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    requirePermission(c, "truncateTable",<a name="line.932"></a>
-<span class="sourceLineNo">933</span>        tableName, null, null, Action.ADMIN, Action.CREATE);<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>    final Configuration conf = c.getEnvironment().getConfiguration();<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    User.runAsLoginUser(new PrivilegedExceptionAction&lt;Void&gt;() {<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      @Override<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      public Void run() throws Exception {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>        List&lt;UserPermission&gt; acls = AccessControlLists.getUserTablePermissions(conf, tableName);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        if (acls != null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>          tableAcls.put(tableName, acls);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>        return null;<a name="line.943"></a>
-<span class="sourceLineNo">944</span>      }<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    });<a name="line.945"></a>
-<span class="sourceLineNo">946</span>  }<a name="line.946"></a>
-<span class="sourceLineNo">947</spa

<TRUNCATED>

[34/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
index 4a035fc..0fb0b40 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
@@ -428,6 +428,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html#commit-org.apache.hadoop.hbase.monitoring.MonitoredTask-">commit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a></code></dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether compaction is required</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html b/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html
index 0238233..2528745 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html
@@ -239,6 +239,7 @@ interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/
  A very short operation</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>whether compaction is required</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 712ac25..f99a409 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -703,19 +703,19 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.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/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html
index 4e8ae3b..d35c388 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html
@@ -245,7 +245,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ShipperL
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html#SEEK_NEXT_ROW"><code>ScanQueryMatcher.MatchCode.SEEK_NEXT_ROW</code></a>.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>cell</code> - </dd>
+<dd><code>cell</code> - a cell with the column to match against</dd>
 <dd><code>type</code> - The type of the Cell</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The match code instance.</dd>
@@ -276,7 +276,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ShipperL
  checkVersions method.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>cell</code> - </dd>
+<dd><code>cell</code> - a cell with the column to match against</dd>
 <dd><code>timestamp</code> - The timestamp of the cell.</dd>
 <dd><code>type</code> - the type of the key value (Put/Delete)</dd>
 <dd><code>ignoreCount</code> - indicates if the KV needs to be excluded while counting (used during

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ExplicitColumnTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ExplicitColumnTracker.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ExplicitColumnTracker.html
index f182606..e11d602 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ExplicitColumnTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ExplicitColumnTracker.html
@@ -479,6 +479,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/query
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html#checkColumn-org.apache.hadoop.hbase.Cell-byte-">checkColumn</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.querymatcher">ColumnTracker</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cell</code> - a cell with the column to match against</dd>
 <dd><code>type</code> - The type of the Cell</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The match code instance.</dd>
@@ -508,6 +510,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/query
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html#checkVersions-org.apache.hadoop.hbase.Cell-long-byte-boolean-">checkVersions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.querymatcher">ColumnTracker</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cell</code> - a cell with the column to match against</dd>
 <dd><code>timestamp</code> - The timestamp of the cell.</dd>
 <dd><code>type</code> - the type of the key value (Put/Delete)</dd>
 <dd><code>ignoreCount</code> - indicates if the KV needs to be excluded while counting (used during

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/NewVersionBehaviorTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/NewVersionBehaviorTracker.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/NewVersionBehaviorTracker.html
index c6221b7..3af9384 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/NewVersionBehaviorTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/NewVersionBehaviorTracker.html
@@ -701,6 +701,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/query
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html#checkColumn-org.apache.hadoop.hbase.Cell-byte-">checkColumn</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.querymatcher">ColumnTracker</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cell</code> - a cell with the column to match against</dd>
 <dd><code>type</code> - The type of the Cell</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The match code instance.</dd>
@@ -733,6 +735,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/query
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html#checkVersions-org.apache.hadoop.hbase.Cell-long-byte-boolean-">checkVersions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.querymatcher">ColumnTracker</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cell</code> - a cell with the column to match against</dd>
 <dd><code>timestamp</code> - The timestamp of the cell.</dd>
 <dd><code>type</code> - the type of the key value (Put/Delete)</dd>
 <dd><code>ignoreCount</code> - indicates if the KV needs to be excluded while counting (used during

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ScanWildcardColumnTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ScanWildcardColumnTracker.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ScanWildcardColumnTracker.html
index 81d67fb..9b6ca5f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ScanWildcardColumnTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/ScanWildcardColumnTracker.html
@@ -444,6 +444,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/query
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html#checkColumn-org.apache.hadoop.hbase.Cell-byte-">checkColumn</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.querymatcher">ColumnTracker</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cell</code> - a cell with the column to match against</dd>
 <dd><code>type</code> - The type of the Cell</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The match code instance.</dd>
@@ -476,6 +478,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/query
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html#checkVersions-org.apache.hadoop.hbase.Cell-long-byte-boolean-">checkVersions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.querymatcher">ColumnTracker</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cell</code> - a cell with the column to match against</dd>
 <dd><code>timestamp</code> - The timestamp of the cell.</dd>
 <dd><code>type</code> - the type of the key value (Put/Delete)</dd>
 <dd><code>ignoreCount</code> - indicates if the KV needs to be excluded while counting (used during

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html b/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html
index 55bd958..3936b98 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.224">HBaseReplicationEndpoint.PeerRegionServerListener</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.211">HBaseReplicationEndpoint.PeerRegionServerListener</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKListener</a></pre>
 <div class="block">Tracks changes to the list of region servers in a peer's cluster.</div>
 </li>
@@ -227,7 +227,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationEndpoint</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.replication">HBaseReplicationEndpoint</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html#line.226">replicationEndpoint</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.replication">HBaseReplicationEndpoint</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html#line.213">replicationEndpoint</a></pre>
 </li>
 </ul>
 <a name="regionServerListNode">
@@ -236,7 +236,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>regionServerListNode</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html#line.227">regionServerListNode</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html#line.214">regionServerListNode</a></pre>
 </li>
 </ul>
 </li>
@@ -253,7 +253,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>PeerRegionServerListener</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html#line.229">PeerRegionServerListener</a>(<a href="../../../../../org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.replication">HBaseReplicationEndpoint</a>&nbsp;replicationPeer)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html#line.216">PeerRegionServerListener</a>(<a href="../../../../../org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.replication">HBaseReplicationEndpoint</a>&nbsp;replicationPeer)</pre>
 </li>
 </ul>
 </li>
@@ -270,7 +270,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>nodeChildrenChanged</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html#line.236">nodeChildrenChanged</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html#line.223">nodeChildrenChanged</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.html#nodeChildrenChanged-java.lang.String-">ZKListener</a></code></span></div>
 <div class="block">Called when an existing node has a child node added or removed.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html b/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html
index ec46fe1..5e46467 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html
@@ -202,10 +202,6 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#zkw">zkw</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#zkwLock">zkwLock</a></span></code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.BaseReplicationEndpoint">
@@ -384,22 +380,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.49">LOG</a></pre>
 </li>
 </ul>
-<a name="zkwLock">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>zkwLock</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.51">zkwLock</a></pre>
-</li>
-</ul>
 <a name="zkw">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>zkw</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.52">zkw</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.51">zkw</a></pre>
 </li>
 </ul>
 <a name="regionServers">
@@ -408,7 +395,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServers</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.54">regionServers</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.53">regionServers</a></pre>
 </li>
 </ul>
 <a name="lastRegionServerUpdate">
@@ -417,7 +404,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lastRegionServerUpdate</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.55">lastRegionServerUpdate</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.54">lastRegionServerUpdate</a></pre>
 </li>
 </ul>
 </li>
@@ -451,7 +438,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>disconnect</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.57">disconnect</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.56">disconnect</a>()</pre>
 </li>
 </ul>
 <a name="reconnect-org.apache.zookeeper.KeeperException-">
@@ -460,7 +447,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>reconnect</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.69">reconnect</a>(org.apache.zookeeper.KeeperException&nbsp;ke)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.66">reconnect</a>(org.apache.zookeeper.KeeperException&nbsp;ke)</pre>
 <div class="block">A private method used to re-establish a zookeeper session with a peer cluster.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -474,7 +461,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.83">start</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.80">start</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html#start--">ReplicationEndpoint</a></code></span></div>
 <div class="block">Initiates service startup and returns immediately. A stopped service may not be restarted.
  Equivalent of startAsync call in Guava Service.</div>
@@ -490,7 +477,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.88">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.85">stop</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html#stop--">ReplicationEndpoint</a></code></span></div>
 <div class="block">If the service is starting or running, this initiates service shutdown and returns immediately.
  If the service has already been stopped, this method returns immediately without taking action.
@@ -507,7 +494,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>doStart</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.93">doStart</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.90">doStart</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>doStart</code>&nbsp;in class&nbsp;<code>org.apache.hbase.thirdparty.com.google.common.util.concurrent.AbstractService</code></dd>
@@ -520,7 +507,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>doStop</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.103">doStop</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.100">doStop</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>doStop</code>&nbsp;in class&nbsp;<code>org.apache.hbase.thirdparty.com.google.common.util.concurrent.AbstractService</code></dd>
@@ -533,7 +520,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getPeerUUID</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.113">getPeerUUID</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.110">getPeerUUID</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html#getPeerUUID--">ReplicationEndpoint</a></code></span></div>
 <div class="block">Returns a UUID of the provided peer id. Every HBase cluster instance has a persisted
  associated UUID. If the replication is not performed to an actual HBase cluster (but
@@ -552,7 +539,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getZkw</h4>
-<pre>protected&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/replication/HBaseReplicationEndpoint.html#line.129">getZkw</a>()</pre>
+<pre>protected&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/replication/HBaseReplicationEndpoint.html#line.124">getZkw</a>()</pre>
 <div class="block">Get the ZK connection to this peer</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -566,7 +553,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>reloadZkWatcher</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.139">reloadZkWatcher</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.132">reloadZkWatcher</a>()
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Closes the current ZKW (if not null) and creates a new one</div>
 <dl>
@@ -581,7 +568,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.151">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.140">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Abortable.html#abort-java.lang.String-java.lang.Throwable-">Abortable</a></code></span></div>
 <div class="block">Abort the server or client.</div>
@@ -600,7 +587,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>isAborted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.157">isAborted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.146">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>
@@ -617,7 +604,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>fetchSlavesAddresses</h4>
-<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.167">fetchSlavesAddresses</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;zkw)
+<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.156">fetchSlavesAddresses</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;zkw)
                                                 throws org.apache.zookeeper.KeeperException</pre>
 <div class="block">Get the list of all the region servers from the specified peer</div>
 <dl>
@@ -636,7 +623,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServers</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.185">getRegionServers</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.178">getRegionServers</a>()</pre>
 <div class="block">Get a list of all the addresses of all the region servers
  for this peer cluster</div>
 <dl>
@@ -651,7 +638,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>setRegionServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.207">setRegionServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regionServers)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.194">setRegionServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regionServers)</pre>
 <div class="block">Set the list of region servers for that peer</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -665,7 +652,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getLastRegionServerUpdate</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.217">getLastRegionServerUpdate</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#line.204">getLastRegionServerUpdate</a>()</pre>
 <div class="block">Get the timestamp at which the last change occurred to the list of region servers to replicate
  to.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 d1e114d..193a3a3032 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -198,8 +198,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/4df09ed9/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 034077c..c20ff47 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/4df09ed9/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
index d8ea5ac..9415d46 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
@@ -343,7 +343,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>moveTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.219">moveTables</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.220">moveTables</a>(com.google.protobuf.RpcController&nbsp;controller,
                        org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesRequest&nbsp;request,
                        com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesResponse&gt;&nbsp;done)</pre>
 <dl>
@@ -358,7 +358,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>addRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.243">addRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.245">addRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
                        org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupRequest&nbsp;request,
                        com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupResponse&gt;&nbsp;done)</pre>
 <dl>
@@ -373,7 +373,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.262">removeRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.265">removeRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
                           org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupRequest&nbsp;request,
                           com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupResponse&gt;&nbsp;done)</pre>
 <dl>
@@ -388,7 +388,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.282">balanceRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.286">balanceRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
                            org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupRequest&nbsp;request,
                            com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupResponse&gt;&nbsp;done)</pre>
 <dl>
@@ -403,7 +403,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>listRSGroupInfos</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.305">listRSGroupInfos</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.310">listRSGroupInfos</a>(com.google.protobuf.RpcController&nbsp;controller,
                              org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosRequest&nbsp;request,
                              com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosResponse&gt;&nbsp;done)</pre>
 <dl>
@@ -418,7 +418,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfoOfServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.321">getRSGroupInfoOfServer</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.326">getRSGroupInfoOfServer</a>(com.google.protobuf.RpcController&nbsp;controller,
                                    org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerRequest&nbsp;request,
                                    com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerResponse&gt;&nbsp;done)</pre>
 <dl>
@@ -433,7 +433,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServersAndTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.341">moveServersAndTables</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.346">moveServersAndTables</a>(com.google.protobuf.RpcController&nbsp;controller,
                                  org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesRequest&nbsp;request,
                                  com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesResponse&gt;&nbsp;done)</pre>
 <dl>
@@ -448,7 +448,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>removeServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.371">removeServers</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.377">removeServers</a>(com.google.protobuf.RpcController&nbsp;controller,
                           org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest&nbsp;request,
                           com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersResponse&gt;&nbsp;done)</pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
index 96e323a..0a38bc1 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
@@ -533,7 +533,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>rsgroupHasServersOnline</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.397">rsgroupHasServersOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.404">rsgroupHasServersOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -547,7 +547,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>assignTableToGroup</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.426">assignTableToGroup</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.433">assignTableToGroup</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -561,7 +561,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>preCreateTableAction</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.449">preCreateTableAction</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.456">preCreateTableAction</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                  <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
                                  <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regions)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -587,7 +587,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>postCreateTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.461">postCreateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.468">postCreateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
                             <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regions)
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -612,7 +612,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>postDeleteTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.468">postDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.475">postDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">MasterObserver</a></code></span></div>
@@ -635,7 +635,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>preCreateNamespace</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.483">preCreateNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.490">preCreateNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">MasterObserver</a></code></span></div>
@@ -658,7 +658,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>preModifyNamespace</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.492">preModifyNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.499">preModifyNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;currentNsDesc,
                                <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;newNsDesc)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -682,7 +682,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>preCloneSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.498">preCloneSnapshot</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.505">preCloneSnapshot</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                              <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                              <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -707,7 +707,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>postClearDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.504">postClearDeadServers</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.511">postClearDeadServers</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;notClearedServers)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -727,7 +727,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>checkPermission</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.514">checkPermission</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.521">checkPermission</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request)
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -741,7 +741,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getActiveUser</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.523">getActiveUser</a>()
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.530">getActiveUser</a>()
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Returns the active user to which authorization checks should be applied.
  If we are in the context of an RPC call, the remote user is used,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/security/access/AccessControlFilter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/AccessControlFilter.html b/devapidocs/org/apache/hadoop/hbase/security/access/AccessControlFilter.html
index f340de6..37027c0 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/AccessControlFilter.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/AccessControlFilter.html
@@ -580,7 +580,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/filter/FilterBase.htm
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/exceptions/DeserializationException.html" title="class in org.apache.hadoop.hbase.exceptions">DeserializationException</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#toByteArray()}</code></dd>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.html#toByteArray--"><code>toByteArray()</code></a></dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.OpType.html b/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
index 5731302..dfcafa1 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.507">AccessController.OpType</a>
+<pre>private static enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.506">AccessController.OpType</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a>&gt;</pre>
 </li>
 </ul>
@@ -257,7 +257,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>GET</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.508">GET</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.507">GET</a></pre>
 </li>
 </ul>
 <a name="EXISTS">
@@ -266,7 +266,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>EXISTS</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.509">EXISTS</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.508">EXISTS</a></pre>
 </li>
 </ul>
 <a name="SCAN">
@@ -275,7 +275,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>SCAN</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.510">SCAN</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.509">SCAN</a></pre>
 </li>
 </ul>
 <a name="PUT">
@@ -284,7 +284,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>PUT</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.511">PUT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.510">PUT</a></pre>
 </li>
 </ul>
 <a name="DELETE">
@@ -293,7 +293,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>DELETE</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.512">DELETE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.511">DELETE</a></pre>
 </li>
 </ul>
 <a name="CHECK_AND_PUT">
@@ -302,7 +302,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>CHECK_AND_PUT</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.513">CHECK_AND_PUT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.512">CHECK_AND_PUT</a></pre>
 </li>
 </ul>
 <a name="CHECK_AND_DELETE">
@@ -311,7 +311,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>CHECK_AND_DELETE</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.514">CHECK_AND_DELETE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.513">CHECK_AND_DELETE</a></pre>
 </li>
 </ul>
 <a name="INCREMENT_COLUMN_VALUE">
@@ -320,7 +320,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>INCREMENT_COLUMN_VALUE</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.515">INCREMENT_COLUMN_VALUE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.514">INCREMENT_COLUMN_VALUE</a></pre>
 </li>
 </ul>
 <a name="APPEND">
@@ -329,7 +329,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>APPEND</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.516">APPEND</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.515">APPEND</a></pre>
 </li>
 </ul>
 <a name="INCREMENT">
@@ -338,7 +338,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>INCREMENT</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.517">INCREMENT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.516">INCREMENT</a></pre>
 </li>
 </ul>
 </li>
@@ -355,7 +355,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>type</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.519">type</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.518">type</a></pre>
 </li>
 </ul>
 </li>
@@ -372,7 +372,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.507">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.506">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -392,7 +392,7 @@ for (AccessController.OpType c : AccessController.OpType.values())
 <ul class="blockList">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.507">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.506">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
@@ -414,7 +414,7 @@ not permitted.)</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.526">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html#line.525">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access">AccessController.OpType</a>&gt;</code></dd>


[48/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 0407bcf..e17d239 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -271,7 +271,7 @@
                                   
             <div class="section">
 <h2><a name="Checkstyle_Results"></a>Checkstyle Results</h2>
-<p>The following document contains the results of <a class="externalLink" href="http://checkstyle.sourceforge.net/">Checkstyle</a> 6.18 with hbase/checkstyle.xml ruleset.&#160;<a href="checkstyle.rss"><img alt="rss feed" src="images/rss.png" /></a></p></div>
+<p>The following document contains the results of <a class="externalLink" href="http://checkstyle.sourceforge.net/">Checkstyle</a> 8.2 with hbase/checkstyle.xml ruleset.&#160;<a href="checkstyle.rss"><img alt="rss feed" src="images/rss.png" /></a></p></div>
 <div class="section">
 <h2><a name="Summary"></a>Summary</h2>
 <table border="0" class="table table-striped">
@@ -281,10 +281,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>3616</td>
+<td>3619</td>
 <td>0</td>
 <td>0</td>
-<td>15858</td></tr></table></div>
+<td>16476</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -377,7 +377,7 @@
 <td><a href="#org.apache.hadoop.hbase.CompoundConfiguration.java">org/apache/hadoop/hbase/CompoundConfiguration.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>5</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.CoordinatedStateManager.java">org/apache/hadoop/hbase/CoordinatedStateManager.java</a></td>
 <td>0</td>
@@ -392,7 +392,7 @@
 <td><a href="#org.apache.hadoop.hbase.DistributedHBaseCluster.java">org/apache/hadoop/hbase/DistributedHBaseCluster.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>6</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.DoNotRetryIOException.java">org/apache/hadoop/hbase/DoNotRetryIOException.java</a></td>
 <td>0</td>
@@ -422,7 +422,7 @@
 <td><a href="#org.apache.hadoop.hbase.HBaseCluster.java">org/apache/hadoop/hbase/HBaseCluster.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
+<td>6</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.HBaseClusterManager.java">org/apache/hadoop/hbase/HBaseClusterManager.java</a></td>
 <td>0</td>
@@ -442,12 +442,12 @@
 <td><a href="#org.apache.hadoop.hbase.HBaseTestCase.java">org/apache/hadoop/hbase/HBaseTestCase.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>19</td></tr>
+<td>25</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.HBaseTestingUtility.java">org/apache/hadoop/hbase/HBaseTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>259</td></tr>
+<td>278</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.HColumnDescriptor.java">org/apache/hadoop/hbase/HColumnDescriptor.java</a></td>
 <td>0</td>
@@ -462,7 +462,7 @@
 <td><a href="#org.apache.hadoop.hbase.HRegionInfo.java">org/apache/hadoop/hbase/HRegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>55</td></tr>
+<td>59</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.HRegionLocation.java">org/apache/hadoop/hbase/HRegionLocation.java</a></td>
 <td>0</td>
@@ -472,7 +472,7 @@
 <td><a href="#org.apache.hadoop.hbase.HTableDescriptor.java">org/apache/hadoop/hbase/HTableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>36</td></tr>
+<td>38</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.HTestConst.java">org/apache/hadoop/hbase/HTestConst.java</a></td>
 <td>0</td>
@@ -499,60 +499,50 @@
 <td>0</td>
 <td>3</td></tr>
 <tr class="a">
-<td><a href="#org.apache.hadoop.hbase.IntegrationTestBase.java">org/apache/hadoop/hbase/IntegrationTestBase.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>1</td></tr>
-<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.IntegrationTestDDLMasterFailover.java">org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>53</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.IntegrationTestIngest.java">org/apache/hadoop/hbase/IntegrationTestIngest.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.IntegrationTestIngestWithACL.java">org/apache/hadoop/hbase/IntegrationTestIngestWithACL.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.IntegrationTestIngestWithEncryption.java">org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.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.IntegrationTestIngestWithMOB.java">org/apache/hadoop/hbase/IntegrationTestIngestWithMOB.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.IntegrationTestIngestWithVisibilityLabels.java">org/apache/hadoop/hbase/IntegrationTestIngestWithVisibilityLabels.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.IntegrationTestManyRegions.java">org/apache/hadoop/hbase/IntegrationTestManyRegions.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.IntegrationTestMetaReplicas.java">org/apache/hadoop/hbase/IntegrationTestMetaReplicas.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.IntegrationTestRegionReplicaPerf.java">org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
-<td><a href="#org.apache.hadoop.hbase.IntegrationTestRegionReplicaReplication.java">org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>1</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.IntegrationTestingUtility.java">org/apache/hadoop/hbase/IntegrationTestingUtility.java</a></td>
 <td>0</td>
@@ -577,7 +567,7 @@
 <td><a href="#org.apache.hadoop.hbase.LocalHBaseCluster.java">org/apache/hadoop/hbase/LocalHBaseCluster.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>24</td></tr>
+<td>32</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.MetaMockingUtil.java">org/apache/hadoop/hbase/MetaMockingUtil.java</a></td>
 <td>0</td>
@@ -592,12 +582,12 @@
 <td><a href="#org.apache.hadoop.hbase.MetaTableAccessor.java">org/apache/hadoop/hbase/MetaTableAccessor.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>63</td></tr>
+<td>66</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.MiniHBaseCluster.java">org/apache/hadoop/hbase/MiniHBaseCluster.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>21</td></tr>
+<td>25</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.MockRegionServerServices.java">org/apache/hadoop/hbase/MockRegionServerServices.java</a></td>
 <td>0</td>
@@ -627,7 +617,7 @@
 <td><a href="#org.apache.hadoop.hbase.PerformanceEvaluation.java">org/apache/hadoop/hbase/PerformanceEvaluation.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>37</td></tr>
+<td>38</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.PerformanceEvaluationCommons.java">org/apache/hadoop/hbase/PerformanceEvaluationCommons.java</a></td>
 <td>0</td>
@@ -712,7 +702,7 @@
 <td><a href="#org.apache.hadoop.hbase.TableDescriptors.java">org/apache/hadoop/hbase/TableDescriptors.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>8</td></tr>
+<td>12</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TableInfoMissingException.java">org/apache/hadoop/hbase/TableInfoMissingException.java</a></td>
 <td>0</td>
@@ -744,545 +734,555 @@
 <td>0</td>
 <td>1</td></tr>
 <tr class="b">
+<td><a href="#org.apache.hadoop.hbase.TestCellUtil.java">org/apache/hadoop/hbase/TestCellUtil.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestCheckTestClasses.java">org/apache/hadoop/hbase/TestCheckTestClasses.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.TestClassFinder.java">org/apache/hadoop/hbase/TestClassFinder.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
-<tr class="b">
+<td>2</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestClientClusterStatus.java">org/apache/hadoop/hbase/TestClientClusterStatus.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.TestClientOperationTimeout.java">org/apache/hadoop/hbase/TestClientOperationTimeout.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.TestClusterPortAssignment.java">org/apache/hadoop/hbase/TestClusterPortAssignment.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.TestFSTableDescriptorForceCreation.java">org/apache/hadoop/hbase/TestFSTableDescriptorForceCreation.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.TestGlobalMemStoreSize.java">org/apache/hadoop/hbase/TestGlobalMemStoreSize.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>5</td></tr>
-<tr class="a">
+<td>6</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestHBaseConfiguration.java">org/apache/hadoop/hbase/TestHBaseConfiguration.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.TestHBaseTestingUtility.java">org/apache/hadoop/hbase/TestHBaseTestingUtility.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.TestHColumnDescriptor.java">org/apache/hadoop/hbase/TestHColumnDescriptor.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.TestHColumnDescriptorDefaultVersions.java">org/apache/hadoop/hbase/TestHColumnDescriptorDefaultVersions.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.TestHTableDescriptor.java">org/apache/hadoop/hbase/TestHTableDescriptor.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.TestIOFencing.java">org/apache/hadoop/hbase/TestIOFencing.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.TestInfoServers.java">org/apache/hadoop/hbase/TestInfoServers.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.TestJMXConnectorServer.java">org/apache/hadoop/hbase/TestJMXConnectorServer.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.TestKeyValue.java">org/apache/hadoop/hbase/TestKeyValue.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.TestLocalHBaseCluster.java">org/apache/hadoop/hbase/TestLocalHBaseCluster.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.TestMetaTableAccessor.java">org/apache/hadoop/hbase/TestMetaTableAccessor.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>5</td></tr>
-<tr class="b">
+<td>10</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMetaTableAccessorNoCluster.java">org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.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.TestMetaTableLocator.java">org/apache/hadoop/hbase/TestMetaTableLocator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>33</td></tr>
-<tr class="b">
+<td>41</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMovedRegionsCleaner.java">org/apache/hadoop/hbase/TestMovedRegionsCleaner.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.TestMultiVersions.java">org/apache/hadoop/hbase/TestMultiVersions.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
-<tr class="b">
+<td>4</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestNamespace.java">org/apache/hadoop/hbase/TestNamespace.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.TestNodeHealthCheckChore.java">org/apache/hadoop/hbase/TestNodeHealthCheckChore.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.TestPartialResultsFromClientSide.java">org/apache/hadoop/hbase/TestPartialResultsFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>38</td></tr>
-<tr class="a">
+<td>24</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestPerformanceEvaluation.java">org/apache/hadoop/hbase/TestPerformanceEvaluation.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>9</td></tr>
-<tr class="b">
+<td>11</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestRegionRebalancing.java">org/apache/hadoop/hbase/TestRegionRebalancing.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>6</td></tr>
-<tr class="a">
+<td>7</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestSerialization.java">org/apache/hadoop/hbase/TestSerialization.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.TestServerSideScanMetricsFromClientSide.java">org/apache/hadoop/hbase/TestServerSideScanMetricsFromClientSide.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.TestStochasticBalancerJmxMetrics.java">org/apache/hadoop/hbase/TestStochasticBalancerJmxMetrics.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.TestTimeout.java">org/apache/hadoop/hbase/TestTimeout.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.TimestampTestBase.java">org/apache/hadoop/hbase/TimestampTestBase.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
-<tr class="b">
+<td>14</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.UnknownRegionException.java">org/apache/hadoop/hbase/UnknownRegionException.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.Waiter.java">org/apache/hadoop/hbase/Waiter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
-<tr class="b">
+<td>2</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.ZKNamespaceManager.java">org/apache/hadoop/hbase/ZKNamespaceManager.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.ZNodeClearer.java">org/apache/hadoop/hbase/ZNodeClearer.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.backup.FailedArchiveException.java">org/apache/hadoop/hbase/backup/FailedArchiveException.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.backup.HFileArchiver.java">org/apache/hadoop/hbase/backup/HFileArchiver.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.backup.TestBackupMerge.java">org/apache/hadoop/hbase/backup/TestBackupMerge.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.backup.TestHFileArchiving.java">org/apache/hadoop/hbase/backup/TestHFileArchiving.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>13</td></tr>
-<tr class="b">
+<td>10</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.example.HFileArchiveManager.java">org/apache/hadoop/hbase/backup/example/HFileArchiveManager.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.backup.example.LongTermArchivingHFileCleaner.java">org/apache/hadoop/hbase/backup/example/LongTermArchivingHFileCleaner.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.backup.example.TableHFileArchiveTracker.java">org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.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.backup.example.TestZooKeeperTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.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.backup.example.ZKTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/ZKTableArchiveClient.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.backup.impl.BackupManager.java">org/apache/hadoop/hbase/backup/impl/BackupManager.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.backup.impl.BackupSystemTable.java">org/apache/hadoop/hbase/backup/impl/BackupSystemTable.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.chaos.actions.Action.java">org/apache/hadoop/hbase/chaos/actions/Action.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.chaos.actions.ChangeCompressionAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.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.chaos.actions.ChangeEncodingAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.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.chaos.actions.ChangeSplitPolicyAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.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.chaos.actions.ChangeVersionsAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.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.chaos.actions.RestartRandomDataNodeAction.java">org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.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.chaos.actions.RollingBatchRestartRsAction.java">org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.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.chaos.actions.SplitAllRegionOfTableAction.java">org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.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.chaos.actions.TruncateTableAction.java">org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.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.chaos.factories.MasterKillingMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.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.chaos.factories.MobNoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.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.chaos.factories.MobSlowDeterministicMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MonkeyConstants.java">org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.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.chaos.factories.MonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.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.chaos.factories.NoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.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.chaos.factories.ServerKillingMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.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.chaos.factories.SlowDeterministicMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>42</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.StressAssignmentManagerMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.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.chaos.monkies.PolicyBasedChaosMonkey.java">org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.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.chaos.policies.PeriodicPolicy.java">org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.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.chaos.policies.TwoConcurrentActionPolicy.java">org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.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.client.AbstractClientScanner.java">org/apache/hadoop/hbase/client/AbstractClientScanner.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.client.AbstractResponse.java">org/apache/hadoop/hbase/client/AbstractResponse.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.client.Action.java">org/apache/hadoop/hbase/client/Action.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.client.Admin.java">org/apache/hadoop/hbase/client/Admin.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>98</td></tr>
-<tr class="b">
+<td>107</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Append.java">org/apache/hadoop/hbase/client/Append.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.client.AsyncAdmin.java">org/apache/hadoop/hbase/client/AsyncAdmin.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.client.AsyncAdminBuilder.java">org/apache/hadoop/hbase/client/AsyncAdminBuilder.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.client.AsyncAdminRequestRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncAdminRequestRetryingCaller.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.client.AsyncBatchRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.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.client.AsyncClientScanner.java">org/apache/hadoop/hbase/client/AsyncClientScanner.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.client.AsyncConnectionConfiguration.java">org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.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.client.AsyncConnectionImpl.java">org/apache/hadoop/hbase/client/AsyncConnectionImpl.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.client.AsyncHBaseAdmin.java">org/apache/hadoop/hbase/client/AsyncHBaseAdmin.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.client.AsyncMasterRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncMasterRequestRpcRetryingCaller.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.client.AsyncMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncMetaRegionLocator.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.client.AsyncNonMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.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.client.AsyncProcess.java">org/apache/hadoop/hbase/client/AsyncProcess.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.client.AsyncProcessTask.java">org/apache/hadoop/hbase/client/AsyncProcessTask.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.client.AsyncRegionLocator.java">org/apache/hadoop/hbase/client/AsyncRegionLocator.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.client.AsyncRegistryFactory.java">org/apache/hadoop/hbase/client/AsyncRegistryFactory.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.client.AsyncRequestFuture.java">org/apache/hadoop/hbase/client/AsyncRequestFuture.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.client.AsyncRequestFutureImpl.java">org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.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.client.AsyncRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCaller.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.client.AsyncRpcRetryingCallerFactory.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.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.client.AsyncScanSingleRegionRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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.client.AsyncServerRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncServerRequestRpcRetryingCaller.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.client.AsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncSingleRequestRpcRetryingCaller.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.client.AsyncTableImpl.java">org/apache/hadoop/hbase/client/AsyncTableImpl.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.client.AsyncTableResultScanner.java">org/apache/hadoop/hbase/client/AsyncTableResultScanner.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.client.BatchErrors.java">org/apache/hadoop/hbase/client/BatchErrors.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.client.BatchScanResultCache.java">org/apache/hadoop/hbase/client/BatchScanResultCache.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.client.BufferingScanResultConsumer.java">org/apache/hadoop/hbase/client/BufferingScanResultConsumer.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.client.CancellableRegionServerCallable.java">org/apache/hadoop/hbase/client/CancellableRegionServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
-<tr class="a">
+<td>8</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientAsyncPrefetchScanner.java">org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.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.client.ClientIdGenerator.java">org/apache/hadoop/hbase/client/ClientIdGenerator.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.client.ClientScanner.java">org/apache/hadoop/hbase/client/ClientScanner.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.client.ClientServiceCallable.java">org/apache/hadoop/hbase/client/ClientServiceCallable.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
-<tr class="a">
+<td>4</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientSideRegionScanner.java">org/apache/hadoop/hbase/client/ClientSideRegionScanner.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.client.ClientSimpleScanner.java">org/apache/hadoop/hbase/client/ClientSimpleScanner.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.client.ClientUtil.java">org/apache/hadoop/hbase/client/ClientUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
+<tr class="a">
+<td><a href="#org.apache.hadoop.hbase.client.ClusterConnection.java">org/apache/hadoop/hbase/client/ClusterConnection.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ColumnCountOnRowFilter.java">org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.java</a></td>
 <td>0</td>
@@ -1317,12 +1317,12 @@
 <td><a href="#org.apache.hadoop.hbase.client.ConnectionImplementation.java">org/apache/hadoop/hbase/client/ConnectionImplementation.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>5</td></tr>
+<td>8</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ConnectionUtils.java">org/apache/hadoop/hbase/client/ConnectionUtils.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>4</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.DelayingRunner.java">org/apache/hadoop/hbase/client/DelayingRunner.java</a></td>
 <td>0</td>
@@ -1342,22 +1342,22 @@
 <td><a href="#org.apache.hadoop.hbase.client.HBaseAdmin.java">org/apache/hadoop/hbase/client/HBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>72</td></tr>
+<td>96</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.HConnectionTestingUtility.java">org/apache/hadoop/hbase/client/HConnectionTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>14</td></tr>
+<td>16</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HRegionLocator.java">org/apache/hadoop/hbase/client/HRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
+<td>3</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.HTable.java">org/apache/hadoop/hbase/client/HTable.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>44</td></tr>
+<td>51</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HTableMultiplexer.java">org/apache/hadoop/hbase/client/HTableMultiplexer.java</a></td>
 <td>0</td>
@@ -1379,765 +1379,765 @@
 <td>0</td>
 <td>4</td></tr>
 <tr class="a">
+<td><a href="#org.apache.hadoop.hbase.client.Increment.java">org/apache/hadoop/hbase/client/Increment.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MasterCallable.java">org/apache/hadoop/hbase/client/MasterCallable.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.client.MasterCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/MasterCoprocessorRpcChannelImpl.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.client.MasterKeepAliveConnection.java">org/apache/hadoop/hbase/client/MasterKeepAliveConnection.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.client.MetaCache.java">org/apache/hadoop/hbase/client/MetaCache.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.client.MetricsConnection.java">org/apache/hadoop/hbase/client/MetricsConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>41</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MultiAction.java">org/apache/hadoop/hbase/client/MultiAction.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.client.MultiResponse.java">org/apache/hadoop/hbase/client/MultiResponse.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.client.MultiServerCallable.java">org/apache/hadoop/hbase/client/MultiServerCallable.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.client.Mutation.java">org/apache/hadoop/hbase/client/Mutation.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.client.NoOpRetryableCallerInterceptor.java">org/apache/hadoop/hbase/client/NoOpRetryableCallerInterceptor.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.client.NoncedRegionServerCallable.java">org/apache/hadoop/hbase/client/NoncedRegionServerCallable.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.client.Operation.java">org/apache/hadoop/hbase/client/Operation.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.client.PackagePrivateFieldAccessor.java">org/apache/hadoop/hbase/client/PackagePrivateFieldAccessor.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.client.PreemptiveFastFailInterceptor.java">org/apache/hadoop/hbase/client/PreemptiveFastFailInterceptor.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.client.Put.java">org/apache/hadoop/hbase/client/Put.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.client.Query.java">org/apache/hadoop/hbase/client/Query.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.client.QuotaStatusCalls.java">org/apache/hadoop/hbase/client/QuotaStatusCalls.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.client.RawAsyncHBaseAdmin.java">org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>88</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionAdminServiceCallable.java">org/apache/hadoop/hbase/client/RegionAdminServiceCallable.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.client.RegionCoprocessorRpcChannel.java">org/apache/hadoop/hbase/client/RegionCoprocessorRpcChannel.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
-<tr class="a">
+<td>4</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/RegionCoprocessorRpcChannelImpl.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.client.RegionCoprocessorServiceExec.java">org/apache/hadoop/hbase/client/RegionCoprocessorServiceExec.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.client.RegionInfo.java">org/apache/hadoop/hbase/client/RegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>55</td></tr>
-<tr class="b">
+<td>57</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionInfoBuilder.java">org/apache/hadoop/hbase/client/RegionInfoBuilder.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.client.RegionInfoDisplay.java">org/apache/hadoop/hbase/client/RegionInfoDisplay.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.client.RegionLocator.java">org/apache/hadoop/hbase/client/RegionLocator.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.client.RegionReplicaUtil.java">org/apache/hadoop/hbase/client/RegionReplicaUtil.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.client.RegionServerCallable.java">org/apache/hadoop/hbase/client/RegionServerCallable.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.client.RegionServerCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/RegionServerCoprocessorRpcChannelImpl.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.client.RequestController.java">org/apache/hadoop/hbase/client/RequestController.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.client.RequestControllerFactory.java">org/apache/hadoop/hbase/client/RequestControllerFactory.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.client.Result.java">org/apache/hadoop/hbase/client/Result.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.client.ResultBoundedCompletionService.java">org/apache/hadoop/hbase/client/ResultBoundedCompletionService.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.client.ResultScanner.java">org/apache/hadoop/hbase/client/ResultScanner.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.client.RetriesExhaustedException.java">org/apache/hadoop/hbase/client/RetriesExhaustedException.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.client.RetriesExhaustedWithDetailsException.java">org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.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.client.RetryingCallerInterceptor.java">org/apache/hadoop/hbase/client/RetryingCallerInterceptor.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.client.ReversedClientScanner.java">org/apache/hadoop/hbase/client/ReversedClientScanner.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.client.ReversedScannerCallable.java">org/apache/hadoop/hbase/client/ReversedScannerCallable.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.client.RowAccess.java">org/apache/hadoop/hbase/client/RowAccess.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.client.RowMutations.java">org/apache/hadoop/hbase/client/RowMutations.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.client.RpcRetryingCaller.java">org/apache/hadoop/hbase/client/RpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
-<tr class="a">
+<td>3</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.java">org/apache/hadoop/hbase/client/RpcRetryingCallerImpl.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
-<tr class="b">
+<td>4</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.java">org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.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.client.Scan.java">org/apache/hadoop/hbase/client/Scan.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>8</td></tr>
-<tr class="b">
+<td>9</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ScannerCallable.java">org/apache/hadoop/hbase/client/ScannerCallable.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.client.ScannerCallableWithReplicas.java">org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.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.client.SecureBulkLoadClient.java">org/apache/hadoop/hbase/client/SecureBulkLoadClient.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.client.ServerStatisticTracker.java">org/apache/hadoop/hbase/client/ServerStatisticTracker.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.client.ShortCircuitMasterConnection.java">org/apache/hadoop/hbase/client/ShortCircuitMasterConnection.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.client.SimpleRequestController.java">org/apache/hadoop/hbase/client/SimpleRequestController.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.client.SimpleScanResultConsumer.java">org/apache/hadoop/hbase/client/SimpleScanResultConsumer.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.client.SyncCoprocessorRpcChannel.java">org/apache/hadoop/hbase/client/SyncCoprocessorRpcChannel.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.client.Table.java">org/apache/hadoop/hbase/client/Table.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.client.TableDescriptor.java">org/apache/hadoop/hbase/client/TableDescriptor.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.client.TableDescriptorBuilder.java">org/apache/hadoop/hbase/client/TableDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>32</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TableState.java">org/apache/hadoop/hbase/client/TableState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>35</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAdmin1.java">org/apache/hadoop/hbase/client/TestAdmin1.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>38</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAdmin2.java">org/apache/hadoop/hbase/client/TestAdmin2.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>13</td></tr>
-<tr class="b">
+<td>14</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAppendFromClientSide.java">org/apache/hadoop/hbase/client/TestAppendFromClientSide.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.client.TestAsyncClusterAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.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.client.TestAsyncNamespaceAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncNamespaceAdminApi.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.client.TestAsyncProcess.java">org/apache/hadoop/hbase/client/TestAsyncProcess.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>17</td></tr>
-<tr class="b">
+<td>18</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncQuotaAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.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.client.TestAsyncRegionAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.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.client.TestAsyncRegionAdminApi2.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.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.client.TestAsyncReplicationAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.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.client.TestAsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.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.client.TestAsyncTable.java">org/apache/hadoop/hbase/client/TestAsyncTable.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.client.TestAsyncTableAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.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.client.TestAsyncTableAdminApi2.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.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.client.TestAsyncTableAdminApi3.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi3.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.client.TestAsyncTableScanMetrics.java">org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.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.client.TestAsyncTableScanner.java">org/apache/hadoop/hbase/client/TestAsyncTableScanner.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.client.TestAttributes.java">org/apache/hadoop/hbase/client/TestAttributes.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.client.TestAvoidCellReferencesIntoShippedBlocks.java">org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.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.client.TestBlockEvictionFromClient.java">org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.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.client.TestBufferedMutator.java">org/apache/hadoop/hbase/client/TestBufferedMutator.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.client.TestCheckAndMutate.java">org/apache/hadoop/hbase/client/TestCheckAndMutate.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
-<tr class="b">
+<td>2</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientExponentialBackoff.java">org/apache/hadoop/hbase/client/TestClientExponentialBackoff.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.client.TestClientNoCluster.java">org/apache/hadoop/hbase/client/TestClientNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>33</td></tr>
-<tr class="b">
+<td>37</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientPushback.java">org/apache/hadoop/hbase/client/TestClientPushback.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.client.TestClientScanner.java">org/apache/hadoop/hbase/client/TestClientScanner.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.client.TestClientTimeouts.java">org/apache/hadoop/hbase/client/TestClientTimeouts.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.client.TestCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.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.client.TestColumnFamilyDescriptorBuilder.java">org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.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.client.TestConnectionImplementation.java">org/apache/hadoop/hbase/client/TestConnectionImplementation.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.client.TestEnableTable.java">org/apache/hadoop/hbase/client/TestEnableTable.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
-<tr class="a">
+<td>6</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFastFail.java">org/apache/hadoop/hbase/client/TestFastFail.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.client.TestFromClientSide.java">org/apache/hadoop/hbase/client/TestFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>71</td></tr>
-<tr class="a">
+<td>100</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSide3.java">org/apache/hadoop/hbase/client/TestFromClientSide3.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>20</td></tr>
-<tr class="b">
+<td>21</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSideNoCodec.java">org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.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.client.TestFromClientSideScanExcpetion.java">org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.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.client.TestGet.java">org/apache/hadoop/hbase/client/TestGet.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.client.TestHBaseAdminNoCluster.java">org/apache/hadoop/hbase/client/TestHBaseAdminNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
-<tr class="b">
+<td>5</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestHTableMultiplexer.java">org/apache/hadoop/hbase/client/TestHTableMultiplexer.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.client.TestHTableMultiplexerFlushCache.java">org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.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.client.TestImmutableHTableDescriptor.java">org/apache/hadoop/hbase/client/TestImmutableHTableDescriptor.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.client.TestIncrementsFromClientSide.java">org/apache/hadoop/hbase/client/TestIncrementsFromClientSide.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.client.TestIntraRowPagination.java">org/apache/hadoop/hbase/client/TestIntraRowPagination.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.client.TestLeaseRenewal.java">org/apache/hadoop/hbase/client/TestLeaseRenewal.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.client.TestLimitedScanWithFilter.java">org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.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.client.TestMetaCache.java">org/apache/hadoop/hbase/client/TestMetaCache.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.client.TestMetricsConnection.java">org/apache/hadoop/hbase/client/TestMetricsConnection.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.client.TestMobCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.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.client.TestMultiParallel.java">org/apache/hadoop/hbase/client/TestMultiParallel.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.client.TestMultipleTimestamps.java">org/apache/hadoop/hbase/client/TestMultipleTimestamps.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>30</td></tr>
-<tr class="b">
+<td>37</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestOperation.java">org/apache/hadoop/hbase/client/TestOperation.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.client.TestPutDeleteEtcCellIteration.java">org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.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.client.TestPutWithDelete.java">org/apache/hadoop/hbase/client/TestPutWithDelete.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.client.TestRawAsyncTableLimitedScanWithFilter.java">org/apache/hadoop/hbase/client/TestRawAsyncTableLimitedScanWithFilter.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.client.TestRawAsyncTableScan.java">org/apache/hadoop/hbase/client/TestRawAsyncTableScan.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.client.TestReplicaWithCluster.java">org/apache/hadoop/hbase/client/TestReplicaWithCluster.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.client.TestReplicasClient.java">org/apache/hadoop/hbase/client/TestReplicasClient.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.client.TestRestoreSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.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.client.TestResult.java">org/apache/hadoop/hbase/client/TestResult.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.client.TestResultSizeEstimation.java">org/apache/hadoop/hbase/client/TestResultSizeEstimation.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.client.TestReversedScannerCallable.java">org/apache/hadoop/hbase/client/TestReversedScannerCallable.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.client.TestScan.java">org/apache/hadoop/hbase/client/TestScan.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.client.TestScannerTimeout.java">org/apache/hadoop/hbase/client/TestScannerTimeout.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.client.TestScannersFromClientSide.java">org/apache/hadoop/hbase/client/TestScannersFromClientSide.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.client.TestScannersFromClientSide2.java">org/apache/hadoop/hbase/client/TestScannersFromClientSide2.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.client.TestServerBusyException.java">org/apache/hadoop/hbase/client/TestServerBusyException.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.client.TestSmallReversedScanner.java">org/apache/hadoop/hbase/client/TestSmallReversedScanner.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.client.TestSnapshotCloneIndependence.java">org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.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.client.TestSnapshotFromAdmin.java">org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.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.client.TestSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestSnapshotFromClient.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.client.TestSnapshotMetadata.java">org/apache/hadoop/hbase/client/TestSnapshotMetadata.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.client.TestSplitOrMergeStatus.java">org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.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.client.TestTableDescriptorBuilder.java">org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.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.client.TestTableFavoredNodes.java">org/apache/hadoop/hbase/client/TestTableFavoredNodes.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.client.TestTableSnapshotScanner.java">org/apache/hadoop/hbase/client/TestTableSnapshotScanner.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.client.TestTimestampsFilter.java">org/apache/hadoop/hbase/client/TestTimestampsFilter.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.client.VersionInfoUtil.java">org/apache/hadoop/hbase/client/VersionInfoUtil.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.client.backoff.ClientBackoffPolicyFactory.java">org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.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.client.backoff.ServerStatistics.java">org/apache/hadoop/hbase/client/backoff/ServerStatistics.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.client.coprocessor.AggregationClient.java">org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>94</td></tr>
-<tr class="b">
+<td>98</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.coprocessor.AggregationHelper.java">org/apache/hadoop/hbase/client/coprocessor/AggregationHelper.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.client.coprocessor.AsyncAggregationClient.java">org/apache/hadoop/hbase/client/coprocessor/AsyncAggregationClient.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.client.coprocessor.BigDecimalColumnInterpreter.java">org/apache/hadoop/hbase/client/coprocessor/BigDecimalColumnInterpreter.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.client.coprocessor.DoubleColumnInterpreter.java">org/apache/hadoop/hbase/client/coprocessor/DoubleColumnInterpreter.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.client.coprocessor.LongColumnInterpreter.java">org/apache/hadoop/hbase/client/coprocessor/LongColumnInterpreter.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.client.coprocessor.RowProcessorClient.java">org/apache/hadoop/hbase/client/coprocessor/RowProcessorClient.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.client.coprocessor.package-info.java">org/apache/hadoop/hbase/client/coprocessor/package-info.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.client.example.RefreshHFilesClient.java">org/apache/hadoop/hbase/client/example/RefreshHFilesClient.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.client.locking.EntityLock.java">org/apache/hadoop/hbase/client/locking/EntityLock.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.client.locking.TestEntityLocks.java">org/apache/hadoop/hbase/client/locking/TestEntityLocks.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.client.metrics.ScanMetrics.java">org/apache/hadoop/hbase/client/metrics/ScanMetrics.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.client.metrics.ServerSideScanMetrics.java">org/apache/hadoop/hbase/client/metrics/ServerSideScanMetrics.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.client.replication.ReplicationAdmin.java">org/apache/hadoop/hbase/client/replication/ReplicationAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>33</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil.java">org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
-<td><a href="#org.apache.hadoop.hbase.client.replication.TableCFs.java">org/apache/hadoop/hbase/client/replication/TableCFs.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>1</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.replication.TestReplicationAdmin.java">org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java</a></td>
 <td>0</td>
@@ -2157,7 +2157,7 @@
 <td><a href="#org.apache.hadoop.hbase.codec.CellCodec.java">org/apache/hadoop/hbase/codec/CellCodec.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>6</td></tr>
+<td>7</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.codec.CellCodecWithTags.java">org/apache/hadoop/hbase/codec/CellCodecWithTags.java</a></td>
 <td>0</td>
@@ -2167,7 +2167,7 @@
 <td><a href="#org.apache.hadoop.hbase.codec.CodecPerformance.java">org/apache/hadoop/hbase/codec/CodecPerformance.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>6</td></tr>
+<td>9</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.codec.MessageCodec.java">org/apache/hadoop/hbase/codec/MessageCodec.java</a></td>
 <td>0</td>
@@ -2282,7 +2282,7 @@
 <td><a href="#org.apache.hadoop.hbase.coprocessor.BulkLoadObserver.java">org/apache/hadoop/hbase/coprocessor/BulkLoadObserver.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>9</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.coprocessor.ColumnAggregationEndpoint.java">org/apache/hadoop/hbase/coprocessor/ColumnAggregationEndpoint.java</a></td>
 <td>0</td>
@@ -2432,7 +2432,7 @@
 <td><a href="#org.apache.hadoop.hbase.coprocessor.TestCoprocessorEndpoint.java">org/apache/hadoop/hbase/coprocessor/TestCoprocessorEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>4</td></tr>
+<td>6</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.coprocessor.TestCoprocessorInterface.java">org/apache/hadoop/hbase/coprocessor/TestCoprocessorInterface.java</a></td>
 <td>0</td>
@@ -2457,7 +2457,7 @@
 <td><a href="#org.apache.hadoop.hbase.coprocessor.TestCoprocessorTableEndpoint.java">org/apache/hadoop/hbase/coprocessor/TestCoprocessorTableEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>4</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.coprocessor.TestCoreMasterCoprocessor.java">org/apache/hadoop/hbase/coprocessor/TestCoreMasterCoprocessor.java</a></td>
 <td>0</td>
@@ -2487,7 +2487,7 @@
 <td><a href="#org.apache.hadoop.hbase.coprocessor.TestMasterObserver.java">org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
+<td>4</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.coprocessor.TestOpenTableInCoprocessor.java">org/apache/hadoop/hbase/coprocessor/TestOpenTableInCoprocessor.java</a></td>
 <td>0</td>
@@ -2572,7 +2572,7 @@
 <td><a href="#org.apache.hadoop.hbase.errorhandling.ForeignException.java">org/apache/hadoop/hbase/errorhandling/ForeignException.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher.java">org/apache/hadoop/hbase/errorhandling/ForeignExceptionDispatcher.java</a></td>
 <td>0</td>
@@ -2672,42 +2672,42 @@
 <td><a href="#org.apache.hadoop.hbase.filter.BinaryComparator.java">org/apache/hadoop/hbase/filter/BinaryComparator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.BinaryPrefixComparator.java">org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.BitComparator.java">org/apache/hadoop/hbase/filter/BitComparator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>9</td></tr>
+<td>10</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.ByteArrayComparable.java">org/apache/hadoop/hbase/filter/ByteArrayComparable.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>4</td></tr>
+<td>5</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.ColumnCountGetFilter.java">org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>8</td></tr>
+<td>9</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.ColumnPaginationFilter.java">org/apache/hadoop/hbase/filter/ColumnPaginationFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>12</td></tr>
+<td>13</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.ColumnPrefixFilter.java">org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>11</td></tr>
+<td>12</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.ColumnRangeFilter.java">org/apache/hadoop/hbase/filter/ColumnRangeFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>21</td></tr>
+<td>22</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.CompareFilter.java">org/apache/hadoop/hbase/filter/CompareFilter.java</a></td>
 <td>0</td>
@@ -2717,12 +2717,12 @@
 <td><a href="#org.apache.hadoop.hbase.filter.DependentColumnFilter.java">org/apache/hadoop/hbase/filter/DependentColumnFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>12</td></tr>
+<td>13</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.FamilyFilter.java">org/apache/hadoop/hbase/filter/FamilyFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>11</td></tr>
+<td>12</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.Filter.java">org/apache/hadoop/hbase/filter/Filter.java</a></td>
 <td>0</td>
@@ -2767,17 +2767,17 @@
 <td><a href="#org.apache.hadoop.hbase.filter.FilterWrapper.java">org/apache/hadoop/hbase/filter/FilterWrapper.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>11</td></tr>
+<td>12</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter.java">org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>8</td></tr>
+<td>9</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.FirstKeyValueMatchingQualifiersFilter.java">org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>9</td></tr>
+<td>10</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.FuzzyRowFilter.java">org/apache/hadoop/hbase/filter/FuzzyRowFilter.java</a></td>
 <td>0</td>
@@ -2787,12 +2787,12 @@
 <td><a href="#org.apache.hadoop.hbase.filter.InclusiveStopFilter.java">org/apache/hadoop/hbase/filter/InclusiveStopFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>12</td></tr>
+<td>13</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.KeyOnlyFilter.java">org/apache/hadoop/hbase/filter/KeyOnlyFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.LongComparator.java">org/apache/hadoop/hbase/filter/LongComparator.java</a></td>
 <td>0</td>
@@ -2807,17 +2807,17 @@
 <td><a href="#org.apache.hadoop.hbase.filter.MultipleColumnPrefixFilter.java">org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>14</td></tr>
+<td>15</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.NullComparator.java">org/apache/hadoop/hbase/filter/NullComparator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.PageFilter.java">org/apache/hadoop/hbase/filter/PageFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>4</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.ParseConstants.java">org/apache/hadoop/hbase/filter/ParseConstants.java</a></td>
 <td>0</td>
@@ -2832,47 +2832,47 @@
 <td><a href="#org.apache.hadoop.hbase.filter.PrefixFilter.java">org/apache/hadoop/hbase/filter/PrefixFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>12</td></tr>
+<td>13</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.QualifierFilter.java">org/apache/hadoop/hbase/filter/QualifierFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>8</td></tr>
+<td>9</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.RandomRowFilter.java">org/apache/hadoop/hbase/filter/RandomRowFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>9</td></tr>
+<td>10</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.RegexStringComparator.java">org/apache/hadoop/hbase/filter/RegexStringComparator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>13</td></tr>
+<td>14</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.RowFilter.java">org/apache/hadoop/hbase/filter/RowFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.SingleColumnValueExcludeFilter.java">org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>22</td></tr>
+<td>23</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.SingleColumnValueFilter.java">org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>22</td></tr>
+<td>23</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.SkipFilter.java">org/apache/hadoop/hbase/filter/SkipFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.SubstringComparator.java">org/apache/hadoop/hbase/filter/SubstringComparator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.TestColumnPaginationFilter.java">org/apache/hadoop/hbase/filter/TestColumnPaginationFilter.java</a></td>
 <td>0</td>
@@ -2887,7 +2887,7 @@
 <td><a href="#org.apache.hadoop.hbase.filter.TestColumnRangeFilter.java">org/apache/hadoop/hbase/filter/TestColumnRangeFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>2</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.TestComparators.java">org/apache/hadoop/hbase/filter/TestComparators.java</a></td>
 <td>0</td>
@@ -2897,12 +2897,12 @@
 <td><a href="#org.apache.hadoop.hbase.filter.TestDependentColumnFilter.java">org/apache/hadoop/hbase/filter/TestDependentColumnFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>15</td></tr>
+<td>16</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.TestFilter.java">org/apache/hadoop/hbase/filter/TestFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>348</td></tr>
+<td>352</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.TestFilterList.java">org/apache/hadoop/hbase/filter/TestFilterList.java</a></td>
 <td>0</td>
@@ -2982,7 +2982,7 @@
 <td><a href="#org.apache.hadoop.hbase.filter.TestPrefixFilter.java">org/apache/hadoop/hbase/filter/TestPrefixFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
+<td>2</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.filter.TestRandomRowFilter.java">org/apache/hadoop/hbase/filter/TestRandomRowFilter.java</a></td>
 <td>0</td>
@@ -3017,12 +3017,12 @@
 <td><a href="#org.apache.hadoop.hbase.filter.ValueFilter.java">org/apache/hadoop/hbase/filter/ValueFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>9</td></tr>
+<td>10</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.filter.WhileMatchFilter.java">org/apache/hadoop/hbase/filter/WhileMatchFilter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>8</td></tr>
+<td>9</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.fs.HFileSystem.java">org/apache/hadoop/hbase/fs/HFileSystem.java</a></td>
 <td>0</td>
@@ -3062,7 +3062,7 @@
 <td><a href="#org.apache.hadoop.hbase.http.HttpServer.java">org/apache/hadoop/hbase/http/HttpServer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>39</td></tr>
+<td>38</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.http.HttpServerFunctionalTest.java">org/apache/hadoop/hbase/http/HttpServerFunctionalTest.java</a></td>
 <td>0</td>
@@ -3072,7 +3072,7 @@
 <td><a href="#org.apache.hadoop.hbase.http.InfoServer.java">org/apache/hadoop/hbase/http/InfoServer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>11</td></tr>
+<td>12</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.http.NoCacheFilter.java">org/apache/hadoop/hbase/http/NoCacheFilter.java</a></td>
 <td>0</td>
@@ -3092,7 +3092,7 @@
 <td><a href="#org.apache.hadoop.hbase.http.TestHttpServer.java">org/apache/hadoop/hbase/http/TestHttpServer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>10</td></tr>
+<td>6</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.http.TestPathFilter.java">org/apache/hadoop/hbase/http/TestPathFilter.java</a></td>
 <td>0</td>
@@ -3187,7 +3187,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.Reference.java">org/apache/hadoop/hbase/io/Reference.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>17</td></tr>
+<td>19</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.io.TagCompressionContext.java">org/apache/hadoop/hbase/io/TagCompressionContext.java</a></td>
 <td>0</td>
@@ -3377,7 +3377,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.java">org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>25</td></tr>
+<td>28</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.BlockCachesIterator.java">org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.java</a></td>
 <td>0</td>
@@ -3462,7 +3462,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.HFileBlock.java">org/apache/hadoop/hbase/io/hfile/HFileBlock.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>21</td></tr>
+<td>25</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.HFileBlockIndex.java">org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java</a></td>
 <td>0</td>
@@ -3492,7 +3492,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.java">org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>51</td></tr>
+<td>52</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.HFileScanner.java">org/apache/hadoop/hbase/io/hfile/HFileScanner.java</a></td>
 <td>0</td>
@@ -3507,12 +3507,12 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.HFileWriterImpl.java">org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>25</td></tr>
+<td>26</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.KVGenerator.java">org/apache/hadoop/hbase/io/hfile/KVGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>4</td></tr>
+<td>3</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.LruBlockCache.java">org/apache/hadoop/hbase/io/hfile/LruBlockCache.java</a></td>
 <td>0</td>
@@ -3552,7 +3552,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.TestBlockCacheReporting.java">org/apache/hadoop/hbase/io/hfile/TestBlockCacheReporting.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>5</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.TestCacheConfig.java">org/apache/hadoop/hbase/io/hfile/TestCacheConfig.java</a></td>
 <td>0</td>
@@ -3642,7 +3642,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.java">org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>39</td></tr>
+<td>40</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.BucketCacheStats.java">org/apache/hadoop/hbase/io/hfile/bucket/BucketCacheStats.java</a></td>
 <td>0</td>
@@ -3682,7 +3682,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.TestBucketWriterThread.java">org/apache/hadoop/hbase/io/hfile/bucket/TestBucketWriterThread.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>10</td></tr>
+<td>11</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.bucket.TestFileIOEngine.java">org/apache/hadoop/hbase/io/hfile/bucket/TestFileIOEngine.java</a></td>
 <td>0</td>
@@ -3777,7 +3777,7 @@
 <td><a href="#org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.java">org/apache/hadoop/hbase/ipc/CoprocessorRpcUtils.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>6</td></tr>
+<td>9</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.ipc.DefaultNettyEventLoopConfig.java">org/apache/hadoop/hbase/ipc/DefaultNettyEventLoopConfig.java</a></td>
 <td>0</td>
@@ -3942,7 +3942,7 @@
 <td><a href="#org.apache.hadoop.hbase.ipc.RpcServer.java">org/apache/hadoop/hbase/ipc/RpcServer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>11</td></tr>
+<td>10</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.ipc.RpcServerFactory.java">org/apache/hadoop/hbase/ipc/RpcServerFactory.java</a></td>
 <td>0</td>
@@ -3952,7 +3952,7 @@
 <td><a href="#org.apache.hadoop.hbase.ipc.RpcServerInterface.java">org/apache/hadoop/hbase/ipc/RpcServerInterface.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
+<td>3</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.ipc.ServerCall.java">org/apache/hadoop/hbase/ipc/ServerCall.java</a></td>
 <td>0</td>
@@ -3977,7 +3977,7 @@
 <td><a href="#org.apache.hadoop.hbase.ipc.SimpleRpcServer.java">org/apache/hadoop/hbase/ipc/SimpleRpcServer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>14</td></tr>
+<td>15</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.ipc.SimpleRpcServerResponder.java">org/apache/hadoop/hbase/ipc/SimpleRpcServerResponder.java</a></td>
 <td>0</td>
@@ -4072,7 +4072,7 @@
 <td><a href="#org.apache.hadoop.hbase.mapred.RowCounter.java">org/apache/hadoop/hbase/mapred/RowCounter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapred.TableInputFormat.java">org/apache/hadoop/hbase/mapred/TableInputFormat.java</a></td>
 <td>0</td>
@@ -4082,7 +4082,7 @@
 <td><a href="#org.apache.hadoop.hbase.mapred.TableInputFormatBase.java">org/apache/hadoop/hbase/mapred/TableInputFormatBase.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>6</td></tr>
+<td>7</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapred.TableMap.java">org/apache/hadoop/hbase/mapred/TableMap.java</a></td>
 <td>0</td>
@@ -4092,22 +4092,22 @@
 <td><a href="#org.apache.hadoop.hbase.mapred.TableMapReduceUtil.java">org/apache/hadoop/hbase/mapred/TableMapReduceUtil.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>15</td></tr>
+<td>22</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapred.TableOutputFormat.java">org/apache/hadoop/hbase/mapred/TableOutputFormat.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>5</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mapred.TableRecordReader.java">org/apache/hadoop/hbase/mapred/TableRecordReader.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>6</td></tr>
+<td>7</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapred.TableRecordReaderImpl.java">org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>8</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mapred.TableReduce.java">org/apache/hadoop/hbase/mapred/TableReduce.java</a></td>
 <td>0</td>
@@ -4147,12 +4147,12 @@
 <td><a href="#org.apache.hadoop.hbase.mapred.TestTableInputFormat.java">org/apache/hadoop/hbase/mapred/TestTableInputFormat.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>25</td></tr>
+<td>22</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mapred.TestTableMapReduce.java">org/apache/hadoop/hbase/mapred/TestTableMapReduce.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
+<td>2</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapred.TestTableMapReduceUtil.java">org/apache/hadoop/hbase/mapred/TestTableMapReduceUtil.java</a></td>
 <td>0</td>
@@ -4167,7 +4167,7 @@
 <td><a href="#org.apache.hadoop.hbase.mapreduce.CellCounter.java">org/apache/hadoop/hbase/mapreduce/CellCounter.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>6</td></tr>
+<td>7</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.CellCreator.java">org/apache/hadoop/hbase/mapreduce/CellCreator.java</a></td>
 <td>0</td>
@@ -4182,12 +4182,12 @@
 <td><a href="#org.apache.hadoop.hbase.mapreduce.CellSortReducer.java">org/apache/hadoop/hbase/mapreduce/CellSortReducer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>1</td></tr>
+<td>2</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.CopyTable.java">org/apache/hadoop/hbase/mapreduce/CopyTable.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>13</td></tr>
+<td>14</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.DefaultVisibilityExpressionResolver.java">org/apache/hadoop/hbase/mapreduce/DefaultVisibilityExpressionResolver.java</a></td>
 <td>0</td>
@@ -4202,7 +4202,7 @@
 <td><a href="#org.apache.hadoop.hbase.mapreduce.Export.java">org/apache/hadoop/hbase/mapreduce/Export.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
+<td>3</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.ExportUtils.java">org/apache/hadoop/hbase/mapreduce/ExportUtils.java</a></td>
 <td>0</td>
@@ -4212,7 +4212,7 @@
 <td><a href="#org.apache.hadoop.hbase.mapreduce.GroupingTableMapper.java">org/apache/hadoop/hbase/mapreduce/GroupingTableMapper.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
+<td>4</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.HFileInputFormat.java">org/apache/hadoop/hbase/mapreduce/HFileInputFormat.java</a></td>
 <td>0</td>
@@ -4237,32 +4237,32 @@
 <td><a href="#org.apache.hadoop.hbase.mapreduce.IdentityTableMapper.java">org/apache/hadoop/hbase/mapreduce/IdentityTableMapper.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
+<td>3</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.IdentityTableReducer.java">org/apache/hadoop/hbase/mapreduce/IdentityTableReducer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
+<td>3</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.Import.java">org/apache/hadoop/hbase/mapreduce/Import.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>10</td></tr>
+<td>15</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.ImportTsv.java">org/apache/hadoop/hbase/mapreduce/ImportTsv.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>21</td></tr>
+<td>22</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.IndexBuilder.java">org/apache/hadoop/hbase/mapreduce/Inde

<TRUNCATED>

[03/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html
index 3b08b86..80483ee 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.AvailablePortChecker.html
@@ -598,7 +598,7 @@
 <span class="sourceLineNo">590</span>   * Start a minidfscluster.<a name="line.590"></a>
 <span class="sourceLineNo">591</span>   * @param servers How many DNs to start.<a name="line.591"></a>
 <span class="sourceLineNo">592</span>   * @throws Exception<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.593"></a>
+<span class="sourceLineNo">593</span>   * @see #shutdownMiniDFSCluster()<a name="line.593"></a>
 <span class="sourceLineNo">594</span>   * @return The mini dfs cluster created.<a name="line.594"></a>
 <span class="sourceLineNo">595</span>   */<a name="line.595"></a>
 <span class="sourceLineNo">596</span>  public MiniDFSCluster startMiniDFSCluster(int servers) throws Exception {<a name="line.596"></a>
@@ -613,7 +613,7 @@
 <span class="sourceLineNo">605</span>   * datanodes will have the same host name.<a name="line.605"></a>
 <span class="sourceLineNo">606</span>   * @param hosts hostnames DNs to run on.<a name="line.606"></a>
 <span class="sourceLineNo">607</span>   * @throws Exception<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.608"></a>
+<span class="sourceLineNo">608</span>   * @see #shutdownMiniDFSCluster()<a name="line.608"></a>
 <span class="sourceLineNo">609</span>   * @return The mini dfs cluster created.<a name="line.609"></a>
 <span class="sourceLineNo">610</span>   */<a name="line.610"></a>
 <span class="sourceLineNo">611</span>  public MiniDFSCluster startMiniDFSCluster(final String hosts[])<a name="line.611"></a>
@@ -631,7 +631,7 @@
 <span class="sourceLineNo">623</span>   * @param servers How many DNs to start.<a name="line.623"></a>
 <span class="sourceLineNo">624</span>   * @param hosts hostnames DNs to run on.<a name="line.624"></a>
 <span class="sourceLineNo">625</span>   * @throws Exception<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.626"></a>
+<span class="sourceLineNo">626</span>   * @see #shutdownMiniDFSCluster()<a name="line.626"></a>
 <span class="sourceLineNo">627</span>   * @return The mini dfs cluster created.<a name="line.627"></a>
 <span class="sourceLineNo">628</span>   */<a name="line.628"></a>
 <span class="sourceLineNo">629</span>  public MiniDFSCluster startMiniDFSCluster(int servers, final String hosts[])<a name="line.629"></a>
@@ -775,7 +775,7 @@
 <span class="sourceLineNo">767</span>   * Start up a minicluster of hbase, dfs, and zookeeper.<a name="line.767"></a>
 <span class="sourceLineNo">768</span>   * @throws Exception<a name="line.768"></a>
 <span class="sourceLineNo">769</span>   * @return Mini hbase cluster instance created.<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.770"></a>
+<span class="sourceLineNo">770</span>   * @see #shutdownMiniDFSCluster()<a name="line.770"></a>
 <span class="sourceLineNo">771</span>   */<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  public MiniHBaseCluster startMiniCluster() throws Exception {<a name="line.772"></a>
 <span class="sourceLineNo">773</span>    return startMiniCluster(1, 1);<a name="line.773"></a>
@@ -785,7 +785,7 @@
 <span class="sourceLineNo">777</span>   * Start up a minicluster of hbase, dfs, and zookeeper where WAL's walDir is created separately.<a name="line.777"></a>
 <span class="sourceLineNo">778</span>   * @throws Exception<a name="line.778"></a>
 <span class="sourceLineNo">779</span>   * @return Mini hbase cluster instance created.<a name="line.779"></a>
-<span class="sourceLineNo">780</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.780"></a>
+<span class="sourceLineNo">780</span>   * @see #shutdownMiniDFSCluster()<a name="line.780"></a>
 <span class="sourceLineNo">781</span>   */<a name="line.781"></a>
 <span class="sourceLineNo">782</span>  public MiniHBaseCluster startMiniCluster(boolean withWALDir) throws Exception {<a name="line.782"></a>
 <span class="sourceLineNo">783</span>    return startMiniCluster(1, 1, 1, null, null, null, false, withWALDir);<a name="line.783"></a>
@@ -797,7 +797,7 @@
 <span class="sourceLineNo">789</span>   * (will overwrite if dir already exists)<a name="line.789"></a>
 <span class="sourceLineNo">790</span>   * @throws Exception<a name="line.790"></a>
 <span class="sourceLineNo">791</span>   * @return Mini hbase cluster instance created.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.792"></a>
+<span class="sourceLineNo">792</span>   * @see #shutdownMiniDFSCluster()<a name="line.792"></a>
 <span class="sourceLineNo">793</span>   */<a name="line.793"></a>
 <span class="sourceLineNo">794</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves, boolean create)<a name="line.794"></a>
 <span class="sourceLineNo">795</span>  throws Exception {<a name="line.795"></a>
@@ -814,7 +814,7 @@
 <span class="sourceLineNo">806</span>   * hbase.regionserver.info.port is -1 (i.e. no ui per regionserver) otherwise<a name="line.806"></a>
 <span class="sourceLineNo">807</span>   * bind errors.<a name="line.807"></a>
 <span class="sourceLineNo">808</span>   * @throws Exception<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * @see {@link #shutdownMiniCluster()}<a name="line.809"></a>
+<span class="sourceLineNo">809</span>   * @see #shutdownMiniCluster()<a name="line.809"></a>
 <span class="sourceLineNo">810</span>   * @return Mini hbase cluster instance created.<a name="line.810"></a>
 <span class="sourceLineNo">811</span>   */<a name="line.811"></a>
 <span class="sourceLineNo">812</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves)<a name="line.812"></a>
@@ -831,7 +831,7 @@
 <span class="sourceLineNo">823</span>   * Start minicluster. Whether to create a new root or data dir path even if such a path<a name="line.823"></a>
 <span class="sourceLineNo">824</span>   * has been created earlier is decided based on flag &lt;code&gt;create&lt;/code&gt;<a name="line.824"></a>
 <span class="sourceLineNo">825</span>   * @throws Exception<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * @see {@link #shutdownMiniCluster()}<a name="line.826"></a>
+<span class="sourceLineNo">826</span>   * @see #shutdownMiniCluster()<a name="line.826"></a>
 <span class="sourceLineNo">827</span>   * @return Mini hbase cluster instance created.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>   */<a name="line.828"></a>
 <span class="sourceLineNo">829</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.829"></a>
@@ -843,7 +843,7 @@
 <span class="sourceLineNo">835</span>  /**<a name="line.835"></a>
 <span class="sourceLineNo">836</span>   * start minicluster<a name="line.836"></a>
 <span class="sourceLineNo">837</span>   * @throws Exception<a name="line.837"></a>
-<span class="sourceLineNo">838</span>   * @see {@link #shutdownMiniCluster()}<a name="line.838"></a>
+<span class="sourceLineNo">838</span>   * @see #shutdownMiniCluster()<a name="line.838"></a>
 <span class="sourceLineNo">839</span>   * @return Mini hbase cluster instance created.<a name="line.839"></a>
 <span class="sourceLineNo">840</span>   */<a name="line.840"></a>
 <span class="sourceLineNo">841</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.841"></a>
@@ -880,7 +880,7 @@
 <span class="sourceLineNo">872</span>   * If you start MiniDFSCluster without host names,<a name="line.872"></a>
 <span class="sourceLineNo">873</span>   * all instances of the datanodes will have the same host name.<a name="line.873"></a>
 <span class="sourceLineNo">874</span>   * @throws Exception<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @see {@link #shutdownMiniCluster()}<a name="line.875"></a>
+<span class="sourceLineNo">875</span>   * @see #shutdownMiniCluster()<a name="line.875"></a>
 <span class="sourceLineNo">876</span>   * @return Mini hbase cluster instance created.<a name="line.876"></a>
 <span class="sourceLineNo">877</span>   */<a name="line.877"></a>
 <span class="sourceLineNo">878</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.878"></a>
@@ -922,7 +922,7 @@
 <span class="sourceLineNo">914</span>   * @param regionserverClass The class to use as HRegionServer, or null for<a name="line.914"></a>
 <span class="sourceLineNo">915</span>   * default<a name="line.915"></a>
 <span class="sourceLineNo">916</span>   * @throws Exception<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @see {@link #shutdownMiniCluster()}<a name="line.917"></a>
+<span class="sourceLineNo">917</span>   * @see #shutdownMiniCluster()<a name="line.917"></a>
 <span class="sourceLineNo">918</span>   * @return Mini hbase cluster instance created.<a name="line.918"></a>
 <span class="sourceLineNo">919</span>   */<a name="line.919"></a>
 <span class="sourceLineNo">920</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.920"></a>
@@ -1011,7 +1011,7 @@
 <span class="sourceLineNo">1003</span>   * @return Reference to the hbase mini hbase cluster.<a name="line.1003"></a>
 <span class="sourceLineNo">1004</span>   * @throws IOException<a name="line.1004"></a>
 <span class="sourceLineNo">1005</span>   * @throws InterruptedException<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * @see {@link #startMiniCluster()}<a name="line.1006"></a>
+<span class="sourceLineNo">1006</span>   * @see #startMiniCluster()<a name="line.1006"></a>
 <span class="sourceLineNo">1007</span>   */<a name="line.1007"></a>
 <span class="sourceLineNo">1008</span>  public MiniHBaseCluster startMiniHBaseCluster(final int numMasters,<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span>        final int numSlaves, List&lt;Integer&gt; rsPorts, Class&lt;? extends HMaster&gt; masterClass,<a name="line.1009"></a>
@@ -1096,7 +1096,7 @@
 <span class="sourceLineNo">1088</span>  /**<a name="line.1088"></a>
 <span class="sourceLineNo">1089</span>   * Stops mini hbase, zk, and hdfs clusters.<a name="line.1089"></a>
 <span class="sourceLineNo">1090</span>   * @throws IOException<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>   * @see {@link #startMiniCluster(int)}<a name="line.1091"></a>
+<span class="sourceLineNo">1091</span>   * @see #startMiniCluster(int)<a name="line.1091"></a>
 <span class="sourceLineNo">1092</span>   */<a name="line.1092"></a>
 <span class="sourceLineNo">1093</span>  public void shutdownMiniCluster() throws Exception {<a name="line.1093"></a>
 <span class="sourceLineNo">1094</span>    LOG.info("Shutting down minicluster");<a name="line.1094"></a>
@@ -1754,10 +1754,10 @@
 <span class="sourceLineNo">1746</span><a name="line.1746"></a>
 <span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
 <span class="sourceLineNo">1748</span>   * Create an HRegion that writes to the local tmp dirs<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   * @param desc<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @param startKey<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   * @param endKey<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   * @return<a name="line.1752"></a>
+<span class="sourceLineNo">1749</span>   * @param desc a table descriptor indicating which table the region belongs to<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>   * @param startKey the start boundary of the region<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>   * @param endKey the end boundary of the region<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>   * @return a region that writes to local dir for testing<a name="line.1752"></a>
 <span class="sourceLineNo">1753</span>   * @throws IOException<a name="line.1753"></a>
 <span class="sourceLineNo">1754</span>   */<a name="line.1754"></a>
 <span class="sourceLineNo">1755</span>  public HRegion createLocalHRegion(TableDescriptor desc, byte [] startKey,<a name="line.1755"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html
index 3b08b86..80483ee 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html
@@ -598,7 +598,7 @@
 <span class="sourceLineNo">590</span>   * Start a minidfscluster.<a name="line.590"></a>
 <span class="sourceLineNo">591</span>   * @param servers How many DNs to start.<a name="line.591"></a>
 <span class="sourceLineNo">592</span>   * @throws Exception<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.593"></a>
+<span class="sourceLineNo">593</span>   * @see #shutdownMiniDFSCluster()<a name="line.593"></a>
 <span class="sourceLineNo">594</span>   * @return The mini dfs cluster created.<a name="line.594"></a>
 <span class="sourceLineNo">595</span>   */<a name="line.595"></a>
 <span class="sourceLineNo">596</span>  public MiniDFSCluster startMiniDFSCluster(int servers) throws Exception {<a name="line.596"></a>
@@ -613,7 +613,7 @@
 <span class="sourceLineNo">605</span>   * datanodes will have the same host name.<a name="line.605"></a>
 <span class="sourceLineNo">606</span>   * @param hosts hostnames DNs to run on.<a name="line.606"></a>
 <span class="sourceLineNo">607</span>   * @throws Exception<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.608"></a>
+<span class="sourceLineNo">608</span>   * @see #shutdownMiniDFSCluster()<a name="line.608"></a>
 <span class="sourceLineNo">609</span>   * @return The mini dfs cluster created.<a name="line.609"></a>
 <span class="sourceLineNo">610</span>   */<a name="line.610"></a>
 <span class="sourceLineNo">611</span>  public MiniDFSCluster startMiniDFSCluster(final String hosts[])<a name="line.611"></a>
@@ -631,7 +631,7 @@
 <span class="sourceLineNo">623</span>   * @param servers How many DNs to start.<a name="line.623"></a>
 <span class="sourceLineNo">624</span>   * @param hosts hostnames DNs to run on.<a name="line.624"></a>
 <span class="sourceLineNo">625</span>   * @throws Exception<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.626"></a>
+<span class="sourceLineNo">626</span>   * @see #shutdownMiniDFSCluster()<a name="line.626"></a>
 <span class="sourceLineNo">627</span>   * @return The mini dfs cluster created.<a name="line.627"></a>
 <span class="sourceLineNo">628</span>   */<a name="line.628"></a>
 <span class="sourceLineNo">629</span>  public MiniDFSCluster startMiniDFSCluster(int servers, final String hosts[])<a name="line.629"></a>
@@ -775,7 +775,7 @@
 <span class="sourceLineNo">767</span>   * Start up a minicluster of hbase, dfs, and zookeeper.<a name="line.767"></a>
 <span class="sourceLineNo">768</span>   * @throws Exception<a name="line.768"></a>
 <span class="sourceLineNo">769</span>   * @return Mini hbase cluster instance created.<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.770"></a>
+<span class="sourceLineNo">770</span>   * @see #shutdownMiniDFSCluster()<a name="line.770"></a>
 <span class="sourceLineNo">771</span>   */<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  public MiniHBaseCluster startMiniCluster() throws Exception {<a name="line.772"></a>
 <span class="sourceLineNo">773</span>    return startMiniCluster(1, 1);<a name="line.773"></a>
@@ -785,7 +785,7 @@
 <span class="sourceLineNo">777</span>   * Start up a minicluster of hbase, dfs, and zookeeper where WAL's walDir is created separately.<a name="line.777"></a>
 <span class="sourceLineNo">778</span>   * @throws Exception<a name="line.778"></a>
 <span class="sourceLineNo">779</span>   * @return Mini hbase cluster instance created.<a name="line.779"></a>
-<span class="sourceLineNo">780</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.780"></a>
+<span class="sourceLineNo">780</span>   * @see #shutdownMiniDFSCluster()<a name="line.780"></a>
 <span class="sourceLineNo">781</span>   */<a name="line.781"></a>
 <span class="sourceLineNo">782</span>  public MiniHBaseCluster startMiniCluster(boolean withWALDir) throws Exception {<a name="line.782"></a>
 <span class="sourceLineNo">783</span>    return startMiniCluster(1, 1, 1, null, null, null, false, withWALDir);<a name="line.783"></a>
@@ -797,7 +797,7 @@
 <span class="sourceLineNo">789</span>   * (will overwrite if dir already exists)<a name="line.789"></a>
 <span class="sourceLineNo">790</span>   * @throws Exception<a name="line.790"></a>
 <span class="sourceLineNo">791</span>   * @return Mini hbase cluster instance created.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.792"></a>
+<span class="sourceLineNo">792</span>   * @see #shutdownMiniDFSCluster()<a name="line.792"></a>
 <span class="sourceLineNo">793</span>   */<a name="line.793"></a>
 <span class="sourceLineNo">794</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves, boolean create)<a name="line.794"></a>
 <span class="sourceLineNo">795</span>  throws Exception {<a name="line.795"></a>
@@ -814,7 +814,7 @@
 <span class="sourceLineNo">806</span>   * hbase.regionserver.info.port is -1 (i.e. no ui per regionserver) otherwise<a name="line.806"></a>
 <span class="sourceLineNo">807</span>   * bind errors.<a name="line.807"></a>
 <span class="sourceLineNo">808</span>   * @throws Exception<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * @see {@link #shutdownMiniCluster()}<a name="line.809"></a>
+<span class="sourceLineNo">809</span>   * @see #shutdownMiniCluster()<a name="line.809"></a>
 <span class="sourceLineNo">810</span>   * @return Mini hbase cluster instance created.<a name="line.810"></a>
 <span class="sourceLineNo">811</span>   */<a name="line.811"></a>
 <span class="sourceLineNo">812</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves)<a name="line.812"></a>
@@ -831,7 +831,7 @@
 <span class="sourceLineNo">823</span>   * Start minicluster. Whether to create a new root or data dir path even if such a path<a name="line.823"></a>
 <span class="sourceLineNo">824</span>   * has been created earlier is decided based on flag &lt;code&gt;create&lt;/code&gt;<a name="line.824"></a>
 <span class="sourceLineNo">825</span>   * @throws Exception<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * @see {@link #shutdownMiniCluster()}<a name="line.826"></a>
+<span class="sourceLineNo">826</span>   * @see #shutdownMiniCluster()<a name="line.826"></a>
 <span class="sourceLineNo">827</span>   * @return Mini hbase cluster instance created.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>   */<a name="line.828"></a>
 <span class="sourceLineNo">829</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.829"></a>
@@ -843,7 +843,7 @@
 <span class="sourceLineNo">835</span>  /**<a name="line.835"></a>
 <span class="sourceLineNo">836</span>   * start minicluster<a name="line.836"></a>
 <span class="sourceLineNo">837</span>   * @throws Exception<a name="line.837"></a>
-<span class="sourceLineNo">838</span>   * @see {@link #shutdownMiniCluster()}<a name="line.838"></a>
+<span class="sourceLineNo">838</span>   * @see #shutdownMiniCluster()<a name="line.838"></a>
 <span class="sourceLineNo">839</span>   * @return Mini hbase cluster instance created.<a name="line.839"></a>
 <span class="sourceLineNo">840</span>   */<a name="line.840"></a>
 <span class="sourceLineNo">841</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.841"></a>
@@ -880,7 +880,7 @@
 <span class="sourceLineNo">872</span>   * If you start MiniDFSCluster without host names,<a name="line.872"></a>
 <span class="sourceLineNo">873</span>   * all instances of the datanodes will have the same host name.<a name="line.873"></a>
 <span class="sourceLineNo">874</span>   * @throws Exception<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @see {@link #shutdownMiniCluster()}<a name="line.875"></a>
+<span class="sourceLineNo">875</span>   * @see #shutdownMiniCluster()<a name="line.875"></a>
 <span class="sourceLineNo">876</span>   * @return Mini hbase cluster instance created.<a name="line.876"></a>
 <span class="sourceLineNo">877</span>   */<a name="line.877"></a>
 <span class="sourceLineNo">878</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.878"></a>
@@ -922,7 +922,7 @@
 <span class="sourceLineNo">914</span>   * @param regionserverClass The class to use as HRegionServer, or null for<a name="line.914"></a>
 <span class="sourceLineNo">915</span>   * default<a name="line.915"></a>
 <span class="sourceLineNo">916</span>   * @throws Exception<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @see {@link #shutdownMiniCluster()}<a name="line.917"></a>
+<span class="sourceLineNo">917</span>   * @see #shutdownMiniCluster()<a name="line.917"></a>
 <span class="sourceLineNo">918</span>   * @return Mini hbase cluster instance created.<a name="line.918"></a>
 <span class="sourceLineNo">919</span>   */<a name="line.919"></a>
 <span class="sourceLineNo">920</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.920"></a>
@@ -1011,7 +1011,7 @@
 <span class="sourceLineNo">1003</span>   * @return Reference to the hbase mini hbase cluster.<a name="line.1003"></a>
 <span class="sourceLineNo">1004</span>   * @throws IOException<a name="line.1004"></a>
 <span class="sourceLineNo">1005</span>   * @throws InterruptedException<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * @see {@link #startMiniCluster()}<a name="line.1006"></a>
+<span class="sourceLineNo">1006</span>   * @see #startMiniCluster()<a name="line.1006"></a>
 <span class="sourceLineNo">1007</span>   */<a name="line.1007"></a>
 <span class="sourceLineNo">1008</span>  public MiniHBaseCluster startMiniHBaseCluster(final int numMasters,<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span>        final int numSlaves, List&lt;Integer&gt; rsPorts, Class&lt;? extends HMaster&gt; masterClass,<a name="line.1009"></a>
@@ -1096,7 +1096,7 @@
 <span class="sourceLineNo">1088</span>  /**<a name="line.1088"></a>
 <span class="sourceLineNo">1089</span>   * Stops mini hbase, zk, and hdfs clusters.<a name="line.1089"></a>
 <span class="sourceLineNo">1090</span>   * @throws IOException<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>   * @see {@link #startMiniCluster(int)}<a name="line.1091"></a>
+<span class="sourceLineNo">1091</span>   * @see #startMiniCluster(int)<a name="line.1091"></a>
 <span class="sourceLineNo">1092</span>   */<a name="line.1092"></a>
 <span class="sourceLineNo">1093</span>  public void shutdownMiniCluster() throws Exception {<a name="line.1093"></a>
 <span class="sourceLineNo">1094</span>    LOG.info("Shutting down minicluster");<a name="line.1094"></a>
@@ -1754,10 +1754,10 @@
 <span class="sourceLineNo">1746</span><a name="line.1746"></a>
 <span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
 <span class="sourceLineNo">1748</span>   * Create an HRegion that writes to the local tmp dirs<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   * @param desc<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @param startKey<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   * @param endKey<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   * @return<a name="line.1752"></a>
+<span class="sourceLineNo">1749</span>   * @param desc a table descriptor indicating which table the region belongs to<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>   * @param startKey the start boundary of the region<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>   * @param endKey the end boundary of the region<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>   * @return a region that writes to local dir for testing<a name="line.1752"></a>
 <span class="sourceLineNo">1753</span>   * @throws IOException<a name="line.1753"></a>
 <span class="sourceLineNo">1754</span>   */<a name="line.1754"></a>
 <span class="sourceLineNo">1755</span>  public HRegion createLocalHRegion(TableDescriptor desc, byte [] startKey,<a name="line.1755"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html
index 3b08b86..80483ee 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.SeenRowTracker.html
@@ -598,7 +598,7 @@
 <span class="sourceLineNo">590</span>   * Start a minidfscluster.<a name="line.590"></a>
 <span class="sourceLineNo">591</span>   * @param servers How many DNs to start.<a name="line.591"></a>
 <span class="sourceLineNo">592</span>   * @throws Exception<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.593"></a>
+<span class="sourceLineNo">593</span>   * @see #shutdownMiniDFSCluster()<a name="line.593"></a>
 <span class="sourceLineNo">594</span>   * @return The mini dfs cluster created.<a name="line.594"></a>
 <span class="sourceLineNo">595</span>   */<a name="line.595"></a>
 <span class="sourceLineNo">596</span>  public MiniDFSCluster startMiniDFSCluster(int servers) throws Exception {<a name="line.596"></a>
@@ -613,7 +613,7 @@
 <span class="sourceLineNo">605</span>   * datanodes will have the same host name.<a name="line.605"></a>
 <span class="sourceLineNo">606</span>   * @param hosts hostnames DNs to run on.<a name="line.606"></a>
 <span class="sourceLineNo">607</span>   * @throws Exception<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.608"></a>
+<span class="sourceLineNo">608</span>   * @see #shutdownMiniDFSCluster()<a name="line.608"></a>
 <span class="sourceLineNo">609</span>   * @return The mini dfs cluster created.<a name="line.609"></a>
 <span class="sourceLineNo">610</span>   */<a name="line.610"></a>
 <span class="sourceLineNo">611</span>  public MiniDFSCluster startMiniDFSCluster(final String hosts[])<a name="line.611"></a>
@@ -631,7 +631,7 @@
 <span class="sourceLineNo">623</span>   * @param servers How many DNs to start.<a name="line.623"></a>
 <span class="sourceLineNo">624</span>   * @param hosts hostnames DNs to run on.<a name="line.624"></a>
 <span class="sourceLineNo">625</span>   * @throws Exception<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.626"></a>
+<span class="sourceLineNo">626</span>   * @see #shutdownMiniDFSCluster()<a name="line.626"></a>
 <span class="sourceLineNo">627</span>   * @return The mini dfs cluster created.<a name="line.627"></a>
 <span class="sourceLineNo">628</span>   */<a name="line.628"></a>
 <span class="sourceLineNo">629</span>  public MiniDFSCluster startMiniDFSCluster(int servers, final String hosts[])<a name="line.629"></a>
@@ -775,7 +775,7 @@
 <span class="sourceLineNo">767</span>   * Start up a minicluster of hbase, dfs, and zookeeper.<a name="line.767"></a>
 <span class="sourceLineNo">768</span>   * @throws Exception<a name="line.768"></a>
 <span class="sourceLineNo">769</span>   * @return Mini hbase cluster instance created.<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.770"></a>
+<span class="sourceLineNo">770</span>   * @see #shutdownMiniDFSCluster()<a name="line.770"></a>
 <span class="sourceLineNo">771</span>   */<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  public MiniHBaseCluster startMiniCluster() throws Exception {<a name="line.772"></a>
 <span class="sourceLineNo">773</span>    return startMiniCluster(1, 1);<a name="line.773"></a>
@@ -785,7 +785,7 @@
 <span class="sourceLineNo">777</span>   * Start up a minicluster of hbase, dfs, and zookeeper where WAL's walDir is created separately.<a name="line.777"></a>
 <span class="sourceLineNo">778</span>   * @throws Exception<a name="line.778"></a>
 <span class="sourceLineNo">779</span>   * @return Mini hbase cluster instance created.<a name="line.779"></a>
-<span class="sourceLineNo">780</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.780"></a>
+<span class="sourceLineNo">780</span>   * @see #shutdownMiniDFSCluster()<a name="line.780"></a>
 <span class="sourceLineNo">781</span>   */<a name="line.781"></a>
 <span class="sourceLineNo">782</span>  public MiniHBaseCluster startMiniCluster(boolean withWALDir) throws Exception {<a name="line.782"></a>
 <span class="sourceLineNo">783</span>    return startMiniCluster(1, 1, 1, null, null, null, false, withWALDir);<a name="line.783"></a>
@@ -797,7 +797,7 @@
 <span class="sourceLineNo">789</span>   * (will overwrite if dir already exists)<a name="line.789"></a>
 <span class="sourceLineNo">790</span>   * @throws Exception<a name="line.790"></a>
 <span class="sourceLineNo">791</span>   * @return Mini hbase cluster instance created.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.792"></a>
+<span class="sourceLineNo">792</span>   * @see #shutdownMiniDFSCluster()<a name="line.792"></a>
 <span class="sourceLineNo">793</span>   */<a name="line.793"></a>
 <span class="sourceLineNo">794</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves, boolean create)<a name="line.794"></a>
 <span class="sourceLineNo">795</span>  throws Exception {<a name="line.795"></a>
@@ -814,7 +814,7 @@
 <span class="sourceLineNo">806</span>   * hbase.regionserver.info.port is -1 (i.e. no ui per regionserver) otherwise<a name="line.806"></a>
 <span class="sourceLineNo">807</span>   * bind errors.<a name="line.807"></a>
 <span class="sourceLineNo">808</span>   * @throws Exception<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * @see {@link #shutdownMiniCluster()}<a name="line.809"></a>
+<span class="sourceLineNo">809</span>   * @see #shutdownMiniCluster()<a name="line.809"></a>
 <span class="sourceLineNo">810</span>   * @return Mini hbase cluster instance created.<a name="line.810"></a>
 <span class="sourceLineNo">811</span>   */<a name="line.811"></a>
 <span class="sourceLineNo">812</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves)<a name="line.812"></a>
@@ -831,7 +831,7 @@
 <span class="sourceLineNo">823</span>   * Start minicluster. Whether to create a new root or data dir path even if such a path<a name="line.823"></a>
 <span class="sourceLineNo">824</span>   * has been created earlier is decided based on flag &lt;code&gt;create&lt;/code&gt;<a name="line.824"></a>
 <span class="sourceLineNo">825</span>   * @throws Exception<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * @see {@link #shutdownMiniCluster()}<a name="line.826"></a>
+<span class="sourceLineNo">826</span>   * @see #shutdownMiniCluster()<a name="line.826"></a>
 <span class="sourceLineNo">827</span>   * @return Mini hbase cluster instance created.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>   */<a name="line.828"></a>
 <span class="sourceLineNo">829</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.829"></a>
@@ -843,7 +843,7 @@
 <span class="sourceLineNo">835</span>  /**<a name="line.835"></a>
 <span class="sourceLineNo">836</span>   * start minicluster<a name="line.836"></a>
 <span class="sourceLineNo">837</span>   * @throws Exception<a name="line.837"></a>
-<span class="sourceLineNo">838</span>   * @see {@link #shutdownMiniCluster()}<a name="line.838"></a>
+<span class="sourceLineNo">838</span>   * @see #shutdownMiniCluster()<a name="line.838"></a>
 <span class="sourceLineNo">839</span>   * @return Mini hbase cluster instance created.<a name="line.839"></a>
 <span class="sourceLineNo">840</span>   */<a name="line.840"></a>
 <span class="sourceLineNo">841</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.841"></a>
@@ -880,7 +880,7 @@
 <span class="sourceLineNo">872</span>   * If you start MiniDFSCluster without host names,<a name="line.872"></a>
 <span class="sourceLineNo">873</span>   * all instances of the datanodes will have the same host name.<a name="line.873"></a>
 <span class="sourceLineNo">874</span>   * @throws Exception<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @see {@link #shutdownMiniCluster()}<a name="line.875"></a>
+<span class="sourceLineNo">875</span>   * @see #shutdownMiniCluster()<a name="line.875"></a>
 <span class="sourceLineNo">876</span>   * @return Mini hbase cluster instance created.<a name="line.876"></a>
 <span class="sourceLineNo">877</span>   */<a name="line.877"></a>
 <span class="sourceLineNo">878</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.878"></a>
@@ -922,7 +922,7 @@
 <span class="sourceLineNo">914</span>   * @param regionserverClass The class to use as HRegionServer, or null for<a name="line.914"></a>
 <span class="sourceLineNo">915</span>   * default<a name="line.915"></a>
 <span class="sourceLineNo">916</span>   * @throws Exception<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @see {@link #shutdownMiniCluster()}<a name="line.917"></a>
+<span class="sourceLineNo">917</span>   * @see #shutdownMiniCluster()<a name="line.917"></a>
 <span class="sourceLineNo">918</span>   * @return Mini hbase cluster instance created.<a name="line.918"></a>
 <span class="sourceLineNo">919</span>   */<a name="line.919"></a>
 <span class="sourceLineNo">920</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.920"></a>
@@ -1011,7 +1011,7 @@
 <span class="sourceLineNo">1003</span>   * @return Reference to the hbase mini hbase cluster.<a name="line.1003"></a>
 <span class="sourceLineNo">1004</span>   * @throws IOException<a name="line.1004"></a>
 <span class="sourceLineNo">1005</span>   * @throws InterruptedException<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * @see {@link #startMiniCluster()}<a name="line.1006"></a>
+<span class="sourceLineNo">1006</span>   * @see #startMiniCluster()<a name="line.1006"></a>
 <span class="sourceLineNo">1007</span>   */<a name="line.1007"></a>
 <span class="sourceLineNo">1008</span>  public MiniHBaseCluster startMiniHBaseCluster(final int numMasters,<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span>        final int numSlaves, List&lt;Integer&gt; rsPorts, Class&lt;? extends HMaster&gt; masterClass,<a name="line.1009"></a>
@@ -1096,7 +1096,7 @@
 <span class="sourceLineNo">1088</span>  /**<a name="line.1088"></a>
 <span class="sourceLineNo">1089</span>   * Stops mini hbase, zk, and hdfs clusters.<a name="line.1089"></a>
 <span class="sourceLineNo">1090</span>   * @throws IOException<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>   * @see {@link #startMiniCluster(int)}<a name="line.1091"></a>
+<span class="sourceLineNo">1091</span>   * @see #startMiniCluster(int)<a name="line.1091"></a>
 <span class="sourceLineNo">1092</span>   */<a name="line.1092"></a>
 <span class="sourceLineNo">1093</span>  public void shutdownMiniCluster() throws Exception {<a name="line.1093"></a>
 <span class="sourceLineNo">1094</span>    LOG.info("Shutting down minicluster");<a name="line.1094"></a>
@@ -1754,10 +1754,10 @@
 <span class="sourceLineNo">1746</span><a name="line.1746"></a>
 <span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
 <span class="sourceLineNo">1748</span>   * Create an HRegion that writes to the local tmp dirs<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   * @param desc<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @param startKey<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   * @param endKey<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   * @return<a name="line.1752"></a>
+<span class="sourceLineNo">1749</span>   * @param desc a table descriptor indicating which table the region belongs to<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>   * @param startKey the start boundary of the region<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>   * @param endKey the end boundary of the region<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>   * @return a region that writes to local dir for testing<a name="line.1752"></a>
 <span class="sourceLineNo">1753</span>   * @throws IOException<a name="line.1753"></a>
 <span class="sourceLineNo">1754</span>   */<a name="line.1754"></a>
 <span class="sourceLineNo">1755</span>  public HRegion createLocalHRegion(TableDescriptor desc, byte [] startKey,<a name="line.1755"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
index 3b08b86..80483ee 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
@@ -598,7 +598,7 @@
 <span class="sourceLineNo">590</span>   * Start a minidfscluster.<a name="line.590"></a>
 <span class="sourceLineNo">591</span>   * @param servers How many DNs to start.<a name="line.591"></a>
 <span class="sourceLineNo">592</span>   * @throws Exception<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.593"></a>
+<span class="sourceLineNo">593</span>   * @see #shutdownMiniDFSCluster()<a name="line.593"></a>
 <span class="sourceLineNo">594</span>   * @return The mini dfs cluster created.<a name="line.594"></a>
 <span class="sourceLineNo">595</span>   */<a name="line.595"></a>
 <span class="sourceLineNo">596</span>  public MiniDFSCluster startMiniDFSCluster(int servers) throws Exception {<a name="line.596"></a>
@@ -613,7 +613,7 @@
 <span class="sourceLineNo">605</span>   * datanodes will have the same host name.<a name="line.605"></a>
 <span class="sourceLineNo">606</span>   * @param hosts hostnames DNs to run on.<a name="line.606"></a>
 <span class="sourceLineNo">607</span>   * @throws Exception<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.608"></a>
+<span class="sourceLineNo">608</span>   * @see #shutdownMiniDFSCluster()<a name="line.608"></a>
 <span class="sourceLineNo">609</span>   * @return The mini dfs cluster created.<a name="line.609"></a>
 <span class="sourceLineNo">610</span>   */<a name="line.610"></a>
 <span class="sourceLineNo">611</span>  public MiniDFSCluster startMiniDFSCluster(final String hosts[])<a name="line.611"></a>
@@ -631,7 +631,7 @@
 <span class="sourceLineNo">623</span>   * @param servers How many DNs to start.<a name="line.623"></a>
 <span class="sourceLineNo">624</span>   * @param hosts hostnames DNs to run on.<a name="line.624"></a>
 <span class="sourceLineNo">625</span>   * @throws Exception<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.626"></a>
+<span class="sourceLineNo">626</span>   * @see #shutdownMiniDFSCluster()<a name="line.626"></a>
 <span class="sourceLineNo">627</span>   * @return The mini dfs cluster created.<a name="line.627"></a>
 <span class="sourceLineNo">628</span>   */<a name="line.628"></a>
 <span class="sourceLineNo">629</span>  public MiniDFSCluster startMiniDFSCluster(int servers, final String hosts[])<a name="line.629"></a>
@@ -775,7 +775,7 @@
 <span class="sourceLineNo">767</span>   * Start up a minicluster of hbase, dfs, and zookeeper.<a name="line.767"></a>
 <span class="sourceLineNo">768</span>   * @throws Exception<a name="line.768"></a>
 <span class="sourceLineNo">769</span>   * @return Mini hbase cluster instance created.<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.770"></a>
+<span class="sourceLineNo">770</span>   * @see #shutdownMiniDFSCluster()<a name="line.770"></a>
 <span class="sourceLineNo">771</span>   */<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  public MiniHBaseCluster startMiniCluster() throws Exception {<a name="line.772"></a>
 <span class="sourceLineNo">773</span>    return startMiniCluster(1, 1);<a name="line.773"></a>
@@ -785,7 +785,7 @@
 <span class="sourceLineNo">777</span>   * Start up a minicluster of hbase, dfs, and zookeeper where WAL's walDir is created separately.<a name="line.777"></a>
 <span class="sourceLineNo">778</span>   * @throws Exception<a name="line.778"></a>
 <span class="sourceLineNo">779</span>   * @return Mini hbase cluster instance created.<a name="line.779"></a>
-<span class="sourceLineNo">780</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.780"></a>
+<span class="sourceLineNo">780</span>   * @see #shutdownMiniDFSCluster()<a name="line.780"></a>
 <span class="sourceLineNo">781</span>   */<a name="line.781"></a>
 <span class="sourceLineNo">782</span>  public MiniHBaseCluster startMiniCluster(boolean withWALDir) throws Exception {<a name="line.782"></a>
 <span class="sourceLineNo">783</span>    return startMiniCluster(1, 1, 1, null, null, null, false, withWALDir);<a name="line.783"></a>
@@ -797,7 +797,7 @@
 <span class="sourceLineNo">789</span>   * (will overwrite if dir already exists)<a name="line.789"></a>
 <span class="sourceLineNo">790</span>   * @throws Exception<a name="line.790"></a>
 <span class="sourceLineNo">791</span>   * @return Mini hbase cluster instance created.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.792"></a>
+<span class="sourceLineNo">792</span>   * @see #shutdownMiniDFSCluster()<a name="line.792"></a>
 <span class="sourceLineNo">793</span>   */<a name="line.793"></a>
 <span class="sourceLineNo">794</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves, boolean create)<a name="line.794"></a>
 <span class="sourceLineNo">795</span>  throws Exception {<a name="line.795"></a>
@@ -814,7 +814,7 @@
 <span class="sourceLineNo">806</span>   * hbase.regionserver.info.port is -1 (i.e. no ui per regionserver) otherwise<a name="line.806"></a>
 <span class="sourceLineNo">807</span>   * bind errors.<a name="line.807"></a>
 <span class="sourceLineNo">808</span>   * @throws Exception<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * @see {@link #shutdownMiniCluster()}<a name="line.809"></a>
+<span class="sourceLineNo">809</span>   * @see #shutdownMiniCluster()<a name="line.809"></a>
 <span class="sourceLineNo">810</span>   * @return Mini hbase cluster instance created.<a name="line.810"></a>
 <span class="sourceLineNo">811</span>   */<a name="line.811"></a>
 <span class="sourceLineNo">812</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves)<a name="line.812"></a>
@@ -831,7 +831,7 @@
 <span class="sourceLineNo">823</span>   * Start minicluster. Whether to create a new root or data dir path even if such a path<a name="line.823"></a>
 <span class="sourceLineNo">824</span>   * has been created earlier is decided based on flag &lt;code&gt;create&lt;/code&gt;<a name="line.824"></a>
 <span class="sourceLineNo">825</span>   * @throws Exception<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * @see {@link #shutdownMiniCluster()}<a name="line.826"></a>
+<span class="sourceLineNo">826</span>   * @see #shutdownMiniCluster()<a name="line.826"></a>
 <span class="sourceLineNo">827</span>   * @return Mini hbase cluster instance created.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>   */<a name="line.828"></a>
 <span class="sourceLineNo">829</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.829"></a>
@@ -843,7 +843,7 @@
 <span class="sourceLineNo">835</span>  /**<a name="line.835"></a>
 <span class="sourceLineNo">836</span>   * start minicluster<a name="line.836"></a>
 <span class="sourceLineNo">837</span>   * @throws Exception<a name="line.837"></a>
-<span class="sourceLineNo">838</span>   * @see {@link #shutdownMiniCluster()}<a name="line.838"></a>
+<span class="sourceLineNo">838</span>   * @see #shutdownMiniCluster()<a name="line.838"></a>
 <span class="sourceLineNo">839</span>   * @return Mini hbase cluster instance created.<a name="line.839"></a>
 <span class="sourceLineNo">840</span>   */<a name="line.840"></a>
 <span class="sourceLineNo">841</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.841"></a>
@@ -880,7 +880,7 @@
 <span class="sourceLineNo">872</span>   * If you start MiniDFSCluster without host names,<a name="line.872"></a>
 <span class="sourceLineNo">873</span>   * all instances of the datanodes will have the same host name.<a name="line.873"></a>
 <span class="sourceLineNo">874</span>   * @throws Exception<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @see {@link #shutdownMiniCluster()}<a name="line.875"></a>
+<span class="sourceLineNo">875</span>   * @see #shutdownMiniCluster()<a name="line.875"></a>
 <span class="sourceLineNo">876</span>   * @return Mini hbase cluster instance created.<a name="line.876"></a>
 <span class="sourceLineNo">877</span>   */<a name="line.877"></a>
 <span class="sourceLineNo">878</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.878"></a>
@@ -922,7 +922,7 @@
 <span class="sourceLineNo">914</span>   * @param regionserverClass The class to use as HRegionServer, or null for<a name="line.914"></a>
 <span class="sourceLineNo">915</span>   * default<a name="line.915"></a>
 <span class="sourceLineNo">916</span>   * @throws Exception<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @see {@link #shutdownMiniCluster()}<a name="line.917"></a>
+<span class="sourceLineNo">917</span>   * @see #shutdownMiniCluster()<a name="line.917"></a>
 <span class="sourceLineNo">918</span>   * @return Mini hbase cluster instance created.<a name="line.918"></a>
 <span class="sourceLineNo">919</span>   */<a name="line.919"></a>
 <span class="sourceLineNo">920</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.920"></a>
@@ -1011,7 +1011,7 @@
 <span class="sourceLineNo">1003</span>   * @return Reference to the hbase mini hbase cluster.<a name="line.1003"></a>
 <span class="sourceLineNo">1004</span>   * @throws IOException<a name="line.1004"></a>
 <span class="sourceLineNo">1005</span>   * @throws InterruptedException<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * @see {@link #startMiniCluster()}<a name="line.1006"></a>
+<span class="sourceLineNo">1006</span>   * @see #startMiniCluster()<a name="line.1006"></a>
 <span class="sourceLineNo">1007</span>   */<a name="line.1007"></a>
 <span class="sourceLineNo">1008</span>  public MiniHBaseCluster startMiniHBaseCluster(final int numMasters,<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span>        final int numSlaves, List&lt;Integer&gt; rsPorts, Class&lt;? extends HMaster&gt; masterClass,<a name="line.1009"></a>
@@ -1096,7 +1096,7 @@
 <span class="sourceLineNo">1088</span>  /**<a name="line.1088"></a>
 <span class="sourceLineNo">1089</span>   * Stops mini hbase, zk, and hdfs clusters.<a name="line.1089"></a>
 <span class="sourceLineNo">1090</span>   * @throws IOException<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>   * @see {@link #startMiniCluster(int)}<a name="line.1091"></a>
+<span class="sourceLineNo">1091</span>   * @see #startMiniCluster(int)<a name="line.1091"></a>
 <span class="sourceLineNo">1092</span>   */<a name="line.1092"></a>
 <span class="sourceLineNo">1093</span>  public void shutdownMiniCluster() throws Exception {<a name="line.1093"></a>
 <span class="sourceLineNo">1094</span>    LOG.info("Shutting down minicluster");<a name="line.1094"></a>
@@ -1754,10 +1754,10 @@
 <span class="sourceLineNo">1746</span><a name="line.1746"></a>
 <span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
 <span class="sourceLineNo">1748</span>   * Create an HRegion that writes to the local tmp dirs<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   * @param desc<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @param startKey<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   * @param endKey<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   * @return<a name="line.1752"></a>
+<span class="sourceLineNo">1749</span>   * @param desc a table descriptor indicating which table the region belongs to<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>   * @param startKey the start boundary of the region<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>   * @param endKey the end boundary of the region<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>   * @return a region that writes to local dir for testing<a name="line.1752"></a>
 <span class="sourceLineNo">1753</span>   * @throws IOException<a name="line.1753"></a>
 <span class="sourceLineNo">1754</span>   */<a name="line.1754"></a>
 <span class="sourceLineNo">1755</span>  public HRegion createLocalHRegion(TableDescriptor desc, byte [] startKey,<a name="line.1755"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestBase.html
index 47c5bf5..93d5537 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestBase.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestBase.html
@@ -46,10 +46,10 @@
 <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> * Base class for HBase integration tests that want to use the Chaos Monkey.<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * Usage: bin/hbase &lt;sub_class_of_IntegrationTestBase&gt; &lt;options&gt;<a name="line.41"></a>
+<span class="sourceLineNo">041</span> * Usage: bin/hbase &amp;lt;sub_class_of_IntegrationTestBase&gt; &amp;lt;options&gt;<a name="line.41"></a>
 <span class="sourceLineNo">042</span> * Options: -h,--help Show usage<a name="line.42"></a>
-<span class="sourceLineNo">043</span> *          -m,--monkey &lt;arg&gt; Which chaos monkey to run<a name="line.43"></a>
-<span class="sourceLineNo">044</span> *          -monkeyProps &lt;arg&gt; The properties file for specifying chaos monkey properties.<a name="line.44"></a>
+<span class="sourceLineNo">043</span> *          -m,--monkey &amp;lt;arg&gt; Which chaos monkey to run<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *          -monkeyProps &amp;lt;arg&gt; The properties file for specifying chaos monkey properties.<a name="line.44"></a>
 <span class="sourceLineNo">045</span> *          -ncc Option to not clean up the cluster at the end.<a name="line.45"></a>
 <span class="sourceLineNo">046</span> */<a name="line.46"></a>
 <span class="sourceLineNo">047</span>public abstract class IntegrationTestBase extends AbstractHBaseTool {<a name="line.47"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedUpdater.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedUpdater.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedUpdater.html
index 7249a34..357c635 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedUpdater.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedUpdater.html
@@ -58,7 +58,7 @@
 <span class="sourceLineNo">050</span> * with the replication of the edits before read_delay_ms to the given region replica id so that<a name="line.50"></a>
 <span class="sourceLineNo">051</span> * the read and verify will not fail.<a name="line.51"></a>
 <span class="sourceLineNo">052</span> *<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * The job will run for &lt;b&gt;at least&lt;b&gt; given runtime (default 10min) by running a concurrent<a name="line.53"></a>
+<span class="sourceLineNo">053</span> * The job will run for &lt;b&gt;at least&lt;/b&gt; given runtime (default 10min) by running a concurrent<a name="line.53"></a>
 <span class="sourceLineNo">054</span> * writer and reader workload followed by a concurrent updater and reader workload for<a name="line.54"></a>
 <span class="sourceLineNo">055</span> * num_keys_per_server.<a name="line.55"></a>
 <span class="sourceLineNo">056</span> * &lt;p&gt;<a name="line.56"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedWriter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedWriter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedWriter.html
index 7249a34..357c635 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedWriter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedWriter.html
@@ -58,7 +58,7 @@
 <span class="sourceLineNo">050</span> * with the replication of the edits before read_delay_ms to the given region replica id so that<a name="line.50"></a>
 <span class="sourceLineNo">051</span> * the read and verify will not fail.<a name="line.51"></a>
 <span class="sourceLineNo">052</span> *<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * The job will run for &lt;b&gt;at least&lt;b&gt; given runtime (default 10min) by running a concurrent<a name="line.53"></a>
+<span class="sourceLineNo">053</span> * The job will run for &lt;b&gt;at least&lt;/b&gt; given runtime (default 10min) by running a concurrent<a name="line.53"></a>
 <span class="sourceLineNo">054</span> * writer and reader workload followed by a concurrent updater and reader workload for<a name="line.54"></a>
 <span class="sourceLineNo">055</span> * num_keys_per_server.<a name="line.55"></a>
 <span class="sourceLineNo">056</span> * &lt;p&gt;<a name="line.56"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html
index 7249a34..357c635 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html
@@ -58,7 +58,7 @@
 <span class="sourceLineNo">050</span> * with the replication of the edits before read_delay_ms to the given region replica id so that<a name="line.50"></a>
 <span class="sourceLineNo">051</span> * the read and verify will not fail.<a name="line.51"></a>
 <span class="sourceLineNo">052</span> *<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * The job will run for &lt;b&gt;at least&lt;b&gt; given runtime (default 10min) by running a concurrent<a name="line.53"></a>
+<span class="sourceLineNo">053</span> * The job will run for &lt;b&gt;at least&lt;/b&gt; given runtime (default 10min) by running a concurrent<a name="line.53"></a>
 <span class="sourceLineNo">054</span> * writer and reader workload followed by a concurrent updater and reader workload for<a name="line.54"></a>
 <span class="sourceLineNo">055</span> * num_keys_per_server.<a name="line.55"></a>
 <span class="sourceLineNo">056</span> * &lt;p&gt;<a name="line.56"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.RepeatingTestThread.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.RepeatingTestThread.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.RepeatingTestThread.html
index 6958746..fd38f4b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.RepeatingTestThread.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.RepeatingTestThread.html
@@ -171,37 +171,36 @@
 <span class="sourceLineNo">163</span>   * Verify that no assertions have failed inside a future.<a name="line.163"></a>
 <span class="sourceLineNo">164</span>   * Used for unit tests that spawn threads. E.g.,<a name="line.164"></a>
 <span class="sourceLineNo">165</span>   * &lt;p&gt;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * &lt;code&gt;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   *   List&lt;Future&lt;Void&gt;&gt; results = Lists.newArrayList();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   *   Future&lt;Void&gt; f = executor.submit(new Callable&lt;Void&gt; {<a name="line.168"></a>
+<span class="sourceLineNo">166</span>   * &lt;pre&gt;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   *   List&amp;lt;Future&amp;lt;Void&gt;&gt; results = Lists.newArrayList();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   *   Future&amp;lt;Void&gt; f = executor.submit(new Callable&amp;lt;Void&gt; {<a name="line.168"></a>
 <span class="sourceLineNo">169</span>   *     public Void call() {<a name="line.169"></a>
 <span class="sourceLineNo">170</span>   *       assertTrue(someMethod());<a name="line.170"></a>
 <span class="sourceLineNo">171</span>   *     }<a name="line.171"></a>
 <span class="sourceLineNo">172</span>   *   });<a name="line.172"></a>
 <span class="sourceLineNo">173</span>   *   results.add(f);<a name="line.173"></a>
 <span class="sourceLineNo">174</span>   *   assertOnFutures(results);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>   * &lt;/code&gt;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>   * &lt;/pre&gt;<a name="line.175"></a>
 <span class="sourceLineNo">176</span>   * @param threadResults A list of futures<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * @param &lt;T&gt;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * @throws InterruptedException If interrupted when waiting for a result<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   *                              from one of the futures<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @throws ExecutionException If an exception other than AssertionError<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   *                            occurs inside any of the futures<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   */<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public static &lt;T&gt; void assertOnFutures(List&lt;Future&lt;T&gt;&gt; threadResults)<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  throws InterruptedException, ExecutionException {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    for (Future&lt;T&gt; threadResult : threadResults) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      try {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        threadResult.get();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      } catch (ExecutionException e) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        if (e.getCause() instanceof AssertionError) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          throw (AssertionError) e.getCause();<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        throw e;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>}<a name="line.196"></a>
+<span class="sourceLineNo">177</span>   * @throws InterruptedException If interrupted when waiting for a result<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   *                              from one of the futures<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @throws ExecutionException If an exception other than AssertionError<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   *                            occurs inside any of the futures<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public static void assertOnFutures(List&lt;Future&lt;?&gt;&gt; threadResults)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  throws InterruptedException, ExecutionException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    for (Future&lt;?&gt; threadResult : threadResults) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        threadResult.get();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      } catch (ExecutionException e) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        if (e.getCause() instanceof AssertionError) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>          throw (AssertionError) e.getCause();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        throw e;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>}<a name="line.195"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestContext.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestContext.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestContext.html
index 6958746..fd38f4b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestContext.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestContext.html
@@ -171,37 +171,36 @@
 <span class="sourceLineNo">163</span>   * Verify that no assertions have failed inside a future.<a name="line.163"></a>
 <span class="sourceLineNo">164</span>   * Used for unit tests that spawn threads. E.g.,<a name="line.164"></a>
 <span class="sourceLineNo">165</span>   * &lt;p&gt;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * &lt;code&gt;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   *   List&lt;Future&lt;Void&gt;&gt; results = Lists.newArrayList();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   *   Future&lt;Void&gt; f = executor.submit(new Callable&lt;Void&gt; {<a name="line.168"></a>
+<span class="sourceLineNo">166</span>   * &lt;pre&gt;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   *   List&amp;lt;Future&amp;lt;Void&gt;&gt; results = Lists.newArrayList();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   *   Future&amp;lt;Void&gt; f = executor.submit(new Callable&amp;lt;Void&gt; {<a name="line.168"></a>
 <span class="sourceLineNo">169</span>   *     public Void call() {<a name="line.169"></a>
 <span class="sourceLineNo">170</span>   *       assertTrue(someMethod());<a name="line.170"></a>
 <span class="sourceLineNo">171</span>   *     }<a name="line.171"></a>
 <span class="sourceLineNo">172</span>   *   });<a name="line.172"></a>
 <span class="sourceLineNo">173</span>   *   results.add(f);<a name="line.173"></a>
 <span class="sourceLineNo">174</span>   *   assertOnFutures(results);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>   * &lt;/code&gt;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>   * &lt;/pre&gt;<a name="line.175"></a>
 <span class="sourceLineNo">176</span>   * @param threadResults A list of futures<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * @param &lt;T&gt;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * @throws InterruptedException If interrupted when waiting for a result<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   *                              from one of the futures<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @throws ExecutionException If an exception other than AssertionError<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   *                            occurs inside any of the futures<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   */<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public static &lt;T&gt; void assertOnFutures(List&lt;Future&lt;T&gt;&gt; threadResults)<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  throws InterruptedException, ExecutionException {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    for (Future&lt;T&gt; threadResult : threadResults) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      try {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        threadResult.get();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      } catch (ExecutionException e) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        if (e.getCause() instanceof AssertionError) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          throw (AssertionError) e.getCause();<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        throw e;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>}<a name="line.196"></a>
+<span class="sourceLineNo">177</span>   * @throws InterruptedException If interrupted when waiting for a result<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   *                              from one of the futures<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @throws ExecutionException If an exception other than AssertionError<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   *                            occurs inside any of the futures<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public static void assertOnFutures(List&lt;Future&lt;?&gt;&gt; threadResults)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  throws InterruptedException, ExecutionException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    for (Future&lt;?&gt; threadResult : threadResults) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        threadResult.get();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      } catch (ExecutionException e) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        if (e.getCause() instanceof AssertionError) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>          throw (AssertionError) e.getCause();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        throw e;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>}<a name="line.195"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestThread.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestThread.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestThread.html
index 6958746..fd38f4b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestThread.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.TestThread.html
@@ -171,37 +171,36 @@
 <span class="sourceLineNo">163</span>   * Verify that no assertions have failed inside a future.<a name="line.163"></a>
 <span class="sourceLineNo">164</span>   * Used for unit tests that spawn threads. E.g.,<a name="line.164"></a>
 <span class="sourceLineNo">165</span>   * &lt;p&gt;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * &lt;code&gt;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   *   List&lt;Future&lt;Void&gt;&gt; results = Lists.newArrayList();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   *   Future&lt;Void&gt; f = executor.submit(new Callable&lt;Void&gt; {<a name="line.168"></a>
+<span class="sourceLineNo">166</span>   * &lt;pre&gt;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   *   List&amp;lt;Future&amp;lt;Void&gt;&gt; results = Lists.newArrayList();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   *   Future&amp;lt;Void&gt; f = executor.submit(new Callable&amp;lt;Void&gt; {<a name="line.168"></a>
 <span class="sourceLineNo">169</span>   *     public Void call() {<a name="line.169"></a>
 <span class="sourceLineNo">170</span>   *       assertTrue(someMethod());<a name="line.170"></a>
 <span class="sourceLineNo">171</span>   *     }<a name="line.171"></a>
 <span class="sourceLineNo">172</span>   *   });<a name="line.172"></a>
 <span class="sourceLineNo">173</span>   *   results.add(f);<a name="line.173"></a>
 <span class="sourceLineNo">174</span>   *   assertOnFutures(results);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>   * &lt;/code&gt;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>   * &lt;/pre&gt;<a name="line.175"></a>
 <span class="sourceLineNo">176</span>   * @param threadResults A list of futures<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * @param &lt;T&gt;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * @throws InterruptedException If interrupted when waiting for a result<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   *                              from one of the futures<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @throws ExecutionException If an exception other than AssertionError<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   *                            occurs inside any of the futures<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   */<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public static &lt;T&gt; void assertOnFutures(List&lt;Future&lt;T&gt;&gt; threadResults)<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  throws InterruptedException, ExecutionException {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    for (Future&lt;T&gt; threadResult : threadResults) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      try {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        threadResult.get();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      } catch (ExecutionException e) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        if (e.getCause() instanceof AssertionError) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          throw (AssertionError) e.getCause();<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        throw e;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>}<a name="line.196"></a>
+<span class="sourceLineNo">177</span>   * @throws InterruptedException If interrupted when waiting for a result<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   *                              from one of the futures<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @throws ExecutionException If an exception other than AssertionError<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   *                            occurs inside any of the futures<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public static void assertOnFutures(List&lt;Future&lt;?&gt;&gt; threadResults)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  throws InterruptedException, ExecutionException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    for (Future&lt;?&gt; threadResult : threadResults) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        threadResult.get();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      } catch (ExecutionException e) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        if (e.getCause() instanceof AssertionError) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>          throw (AssertionError) e.getCause();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        throw e;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>}<a name="line.195"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.html
index 6958746..fd38f4b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.html
@@ -171,37 +171,36 @@
 <span class="sourceLineNo">163</span>   * Verify that no assertions have failed inside a future.<a name="line.163"></a>
 <span class="sourceLineNo">164</span>   * Used for unit tests that spawn threads. E.g.,<a name="line.164"></a>
 <span class="sourceLineNo">165</span>   * &lt;p&gt;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * &lt;code&gt;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   *   List&lt;Future&lt;Void&gt;&gt; results = Lists.newArrayList();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   *   Future&lt;Void&gt; f = executor.submit(new Callable&lt;Void&gt; {<a name="line.168"></a>
+<span class="sourceLineNo">166</span>   * &lt;pre&gt;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   *   List&amp;lt;Future&amp;lt;Void&gt;&gt; results = Lists.newArrayList();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   *   Future&amp;lt;Void&gt; f = executor.submit(new Callable&amp;lt;Void&gt; {<a name="line.168"></a>
 <span class="sourceLineNo">169</span>   *     public Void call() {<a name="line.169"></a>
 <span class="sourceLineNo">170</span>   *       assertTrue(someMethod());<a name="line.170"></a>
 <span class="sourceLineNo">171</span>   *     }<a name="line.171"></a>
 <span class="sourceLineNo">172</span>   *   });<a name="line.172"></a>
 <span class="sourceLineNo">173</span>   *   results.add(f);<a name="line.173"></a>
 <span class="sourceLineNo">174</span>   *   assertOnFutures(results);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>   * &lt;/code&gt;<a name="line.175"></a>
+<span class="sourceLineNo">175</span>   * &lt;/pre&gt;<a name="line.175"></a>
 <span class="sourceLineNo">176</span>   * @param threadResults A list of futures<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * @param &lt;T&gt;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * @throws InterruptedException If interrupted when waiting for a result<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   *                              from one of the futures<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @throws ExecutionException If an exception other than AssertionError<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   *                            occurs inside any of the futures<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   */<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public static &lt;T&gt; void assertOnFutures(List&lt;Future&lt;T&gt;&gt; threadResults)<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  throws InterruptedException, ExecutionException {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    for (Future&lt;T&gt; threadResult : threadResults) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      try {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        threadResult.get();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      } catch (ExecutionException e) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        if (e.getCause() instanceof AssertionError) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          throw (AssertionError) e.getCause();<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        throw e;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>}<a name="line.196"></a>
+<span class="sourceLineNo">177</span>   * @throws InterruptedException If interrupted when waiting for a result<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   *                              from one of the futures<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @throws ExecutionException If an exception other than AssertionError<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   *                            occurs inside any of the futures<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public static void assertOnFutures(List&lt;Future&lt;?&gt;&gt; threadResults)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  throws InterruptedException, ExecutionException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    for (Future&lt;?&gt; threadResult : threadResults) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        threadResult.get();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      } catch (ExecutionException e) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        if (e.getCause() instanceof AssertionError) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>          throw (AssertionError) e.getCause();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        throw e;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>}<a name="line.195"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html
index 8d7bbf9..789e9f9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html
@@ -130,7 +130,7 @@
 <span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
 <span class="sourceLineNo">123</span>   * Test that MetaTableAccessor will ride over server throwing<a name="line.123"></a>
 <span class="sourceLineNo">124</span>   * "Server not running" IOEs.<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * @see @link {https://issues.apache.org/jira/browse/HBASE-3446}<a name="line.125"></a>
+<span class="sourceLineNo">125</span>   * @see &lt;a href="https://issues.apache.org/jira/browse/HBASE-3446"&gt;HBASE-3446&lt;/a&gt;<a name="line.125"></a>
 <span class="sourceLineNo">126</span>   * @throws IOException<a name="line.126"></a>
 <span class="sourceLineNo">127</span>   * @throws InterruptedException<a name="line.127"></a>
 <span class="sourceLineNo">128</span>   */<a name="line.128"></a>


[25/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="line.1364"></a>
+<span class="s

<TRUNCATED>

[21/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a na

<TRUNCATED>

[22/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable beca

<TRUNCATED>

[35/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
index 44e7161..000c3ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -3119,7 +3119,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>closeLock</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1421">closeLock</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1427">closeLock</a></pre>
 </li>
 </ul>
 <a name="MEMSTORE_PERIODIC_FLUSH_INTERVAL">
@@ -3128,7 +3128,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>MEMSTORE_PERIODIC_FLUSH_INTERVAL</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1424">MEMSTORE_PERIODIC_FLUSH_INTERVAL</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1430">MEMSTORE_PERIODIC_FLUSH_INTERVAL</a></pre>
 <div class="block">Conf key for the periodic flush interval</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -3142,7 +3142,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_FLUSH_INTERVAL</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1427">DEFAULT_CACHE_FLUSH_INTERVAL</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1433">DEFAULT_CACHE_FLUSH_INTERVAL</a></pre>
 <div class="block">Default interval for the memstore flush</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -3156,7 +3156,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>SYSTEM_CACHE_FLUSH_INTERVAL</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1429">SYSTEM_CACHE_FLUSH_INTERVAL</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1435">SYSTEM_CACHE_FLUSH_INTERVAL</a></pre>
 <div class="block">Default interval for System tables memstore flush</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -3170,7 +3170,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>MEMSTORE_FLUSH_PER_CHANGES</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1432">MEMSTORE_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1438">MEMSTORE_FLUSH_PER_CHANGES</a></pre>
 <div class="block">Conf key to force a flush if there are already enough changes for one region in memstore</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -3184,7 +3184,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_FLUSH_PER_CHANGES</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1434">DEFAULT_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1440">DEFAULT_FLUSH_PER_CHANGES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegion.DEFAULT_FLUSH_PER_CHANGES">Constant Field Values</a></dd>
@@ -3197,7 +3197,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>MAX_FLUSH_PER_CHANGES</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1439">MAX_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1445">MAX_FLUSH_PER_CHANGES</a></pre>
 <div class="block">The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes
  overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region</div>
 <dl>
@@ -3212,7 +3212,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>FOR_UNIT_TESTS_ONLY</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2879">FOR_UNIT_TESTS_ONLY</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2885">FOR_UNIT_TESTS_ONLY</a></pre>
 <div class="block">Row needed by below method.</div>
 </li>
 </ul>
@@ -3222,7 +3222,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>FIXED_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7996">FIXED_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8004">FIXED_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="DEEP_OVERHEAD">
@@ -3231,7 +3231,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEEP_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8013">DEEP_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8021">DEEP_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="MOCKED_LIST">
@@ -3240,7 +3240,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MOCKED_LIST</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8407">MOCKED_LIST</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8415">MOCKED_LIST</a></pre>
 <div class="block">A mocked list implementation - discards all updates.</div>
 </li>
 </ul>
@@ -3411,7 +3411,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeStores</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.997">initializeStores</a>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1003">initializeStores</a>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter,
                               <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Open all Stores.</div>
@@ -3432,7 +3432,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeWarmup</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1071">initializeWarmup</a>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1077">initializeWarmup</a>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3446,7 +3446,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFiles</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1085">getStoreFiles</a>()</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1091">getStoreFiles</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Map of StoreFiles by column family</dd>
@@ -3459,7 +3459,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>writeRegionOpenMarker</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1102">writeRegionOpenMarker</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1108">writeRegionOpenMarker</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                      long&nbsp;openSeqId)
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -3474,7 +3474,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>writeRegionCloseMarker</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1111">writeRegionCloseMarker</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1117">writeRegionCloseMarker</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal)
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3488,7 +3488,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>hasReferences</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1131">hasReferences</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1137">hasReferences</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if this region has references.</dd>
@@ -3501,7 +3501,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>blockUpdates</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1135">blockUpdates</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1141">blockUpdates</a>()</pre>
 </li>
 </ul>
 <a name="unblockUpdates--">
@@ -3510,7 +3510,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>unblockUpdates</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1139">unblockUpdates</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1145">unblockUpdates</a>()</pre>
 </li>
 </ul>
 <a name="getHDFSBlocksDistribution--">
@@ -3519,7 +3519,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getHDFSBlocksDistribution</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1143">getHDFSBlocksDistribution</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1149">getHDFSBlocksDistribution</a>()</pre>
 </li>
 </ul>
 <a name="computeHDFSBlocksDistribution-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo-">
@@ -3528,7 +3528,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>computeHDFSBlocksDistribution</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1159">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1165">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
                                                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3551,7 +3551,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>computeHDFSBlocksDistribution</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1174">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1180">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                                                    org.apache.hadoop.fs.Path&nbsp;tablePath)
@@ -3576,7 +3576,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>incMemStoreSize</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1213">incMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;mss)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1219">incMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;mss)</pre>
 <div class="block">Increase the size of mem store in this region and the size of global mem
  store</div>
 </li>
@@ -3587,7 +3587,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>incMemStoreSize</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1217">incMemStoreSize</a>(long&nbsp;dataSizeDelta,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1223">incMemStoreSize</a>(long&nbsp;dataSizeDelta,
                      long&nbsp;heapSizeDelta,
                      long&nbsp;offHeapSizeDelta)</pre>
 </li>
@@ -3598,7 +3598,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>decrMemStoreSize</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1226">decrMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;mss)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1232">decrMemStoreSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;mss)</pre>
 </li>
 </ul>
 <a name="decrMemStoreSize-long-long-long-">
@@ -3607,7 +3607,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>decrMemStoreSize</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1230">decrMemStoreSize</a>(long&nbsp;dataSizeDelta,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1236">decrMemStoreSize</a>(long&nbsp;dataSizeDelta,
                       long&nbsp;heapSizeDelta,
                       long&nbsp;offHeapSizeDelta)</pre>
 </li>
@@ -3618,7 +3618,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>checkNegativeMemStoreDataSize</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1239">checkNegativeMemStoreDataSize</a>(long&nbsp;memStoreDataSize,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1245">checkNegativeMemStoreDataSize</a>(long&nbsp;memStoreDataSize,
                                            long&nbsp;delta)</pre>
 </li>
 </ul>
@@ -3628,7 +3628,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1250">getRegionInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1256">getRegionInfo</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getRegionInfo--">getRegionInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3643,7 +3643,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerServices</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1258">getRegionServerServices</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1264">getRegionServerServices</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Instance of <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>RegionServerServices</code></a> used by this HRegion.
@@ -3657,7 +3657,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1263">getReadRequestsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1269">getReadRequestsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getReadRequestsCount--">getReadRequestsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3672,7 +3672,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilteredReadRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1268">getFilteredReadRequestsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1274">getFilteredReadRequestsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getFilteredReadRequestsCount--">getFilteredReadRequestsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3687,7 +3687,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1273">getWriteRequestsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1279">getWriteRequestsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getWriteRequestsCount--">getWriteRequestsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3702,7 +3702,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemStoreDataSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1278">getMemStoreDataSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1284">getMemStoreDataSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMemStoreDataSize--">getMemStoreDataSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3719,7 +3719,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemStoreHeapSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1283">getMemStoreHeapSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1289">getMemStoreHeapSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMemStoreHeapSize--">getMemStoreHeapSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3736,7 +3736,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemStoreOffHeapSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1288">getMemStoreOffHeapSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1294">getMemStoreOffHeapSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMemStoreOffHeapSize--">getMemStoreOffHeapSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3753,7 +3753,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServicesForStores</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1293">getRegionServicesForStores</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1299">getRegionServicesForStores</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>store services for this region, to access services required by store level needs</dd>
@@ -3766,7 +3766,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumMutationsWithoutWAL</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1298">getNumMutationsWithoutWAL</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1304">getNumMutationsWithoutWAL</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getNumMutationsWithoutWAL--">getNumMutationsWithoutWAL</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3781,7 +3781,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getDataInMemoryWithoutWAL</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1303">getDataInMemoryWithoutWAL</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1309">getDataInMemoryWithoutWAL</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getDataInMemoryWithoutWAL--">getDataInMemoryWithoutWAL</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3796,7 +3796,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockedRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1308">getBlockedRequestsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1314">getBlockedRequestsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getBlockedRequestsCount--">getBlockedRequestsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3811,7 +3811,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getCheckAndMutateChecksPassed</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1313">getCheckAndMutateChecksPassed</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1319">getCheckAndMutateChecksPassed</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getCheckAndMutateChecksPassed--">getCheckAndMutateChecksPassed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3826,7 +3826,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getCheckAndMutateChecksFailed</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1318">getCheckAndMutateChecksFailed</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1324">getCheckAndMutateChecksFailed</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getCheckAndMutateChecksFailed--">getCheckAndMutateChecksFailed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3841,7 +3841,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1325">getMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1331">getMetrics</a>()</pre>
 </li>
 </ul>
 <a name="isClosed--">
@@ -3850,7 +3850,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isClosed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1330">isClosed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1336">isClosed</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isClosed--">isClosed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3865,7 +3865,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isClosing</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1335">isClosing</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1341">isClosing</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isClosing--">isClosing</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3880,7 +3880,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isReadOnly</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1340">isReadOnly</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1346">isReadOnly</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isReadOnly--">isReadOnly</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3895,7 +3895,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isAvailable</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1345">isAvailable</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1351">isAvailable</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isAvailable--">isAvailable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3910,7 +3910,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isSplittable</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1350">isSplittable</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1356">isSplittable</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isSplittable--">isSplittable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3925,7 +3925,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isMergeable</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1355">isMergeable</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1361">isMergeable</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isMergeable--">isMergeable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3940,7 +3940,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>areWritesEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1370">areWritesEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1376">areWritesEnabled</a>()</pre>
 </li>
 </ul>
 <a name="getMVCC--">
@@ -3949,7 +3949,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMVCC</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1377">getMVCC</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1383">getMVCC</a>()</pre>
 </li>
 </ul>
 <a name="getMaxFlushedSeqId--">
@@ -3958,7 +3958,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxFlushedSeqId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1382">getMaxFlushedSeqId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1388">getMaxFlushedSeqId</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMaxFlushedSeqId--">getMaxFlushedSeqId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3974,7 +3974,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1389">getReadPoint</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;isolationLevel)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1395">getReadPoint</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;isolationLevel)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>readpoint considering given IsolationLevel. Pass <code>null</code> for default</dd>
@@ -3987,7 +3987,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isLoadingCfsOnDemandDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1397">isLoadingCfsOnDemandDefault</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1403">isLoadingCfsOnDemandDefault</a>()</pre>
 </li>
 </ul>
 <a name="close--">
@@ -3996,7 +3996,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1417">close</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1423">close</a>()
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Close down this HRegion.  Flush the cache, shut down each HStore, don't
  service any more calls.
@@ -4022,7 +4022,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1458">close</a>(boolean&nbsp;abort)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1464">close</a>(boolean&nbsp;abort)
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Close down this HRegion.  Flush the cache unless abort parameter is true,
  Shut down each HStore, don't service any more calls.
@@ -4050,7 +4050,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>setClosing</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1479">setClosing</a>(boolean&nbsp;closing)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1485">setClosing</a>(boolean&nbsp;closing)</pre>
 <div class="block">Exposed for some very specific unit tests.</div>
 </li>
 </ul>
@@ -4060,7 +4060,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimeoutForWriteLock</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1489">setTimeoutForWriteLock</a>(long&nbsp;timeoutForWriteLock)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1495">setTimeoutForWriteLock</a>(long&nbsp;timeoutForWriteLock)</pre>
 <div class="block">The <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#doClose-boolean-org.apache.hadoop.hbase.monitoring.MonitoredTask-"><code>doClose(boolean, org.apache.hadoop.hbase.monitoring.MonitoredTask)</code></a> will block forever if someone tries proving the dead lock via the unit test.
  Instead of blocking, the <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#doClose-boolean-org.apache.hadoop.hbase.monitoring.MonitoredTask-"><code>doClose(boolean, org.apache.hadoop.hbase.monitoring.MonitoredTask)</code></a> will throw exception if you set the timeout.</div>
 <dl>
@@ -4075,7 +4075,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doClose</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1496">doClose</a>(boolean&nbsp;abort,
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1502">doClose</a>(boolean&nbsp;abort,
                                              <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -4090,7 +4090,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForFlushesAndCompactions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1678">waitForFlushesAndCompactions</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1684">waitForFlushesAndCompactions</a>()</pre>
 <div class="block">Wait for all current flushes and compactions of the region to complete</div>
 </li>
 </ul>
@@ -4100,7 +4100,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForFlushes</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1710">waitForFlushes</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1716">waitForFlushes</a>()</pre>
 <div class="block">Wait for all current flushes of the region to complete</div>
 </li>
 </ul>
@@ -4110,7 +4110,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForFlushes</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1715">waitForFlushes</a>(long&nbsp;timeout)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1721">waitForFlushes</a>(long&nbsp;timeout)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#waitForFlushes-long-">Region</a></code></span></div>
 <div class="block">Wait for all current flushes of the region to complete</div>
 <dl>
@@ -4130,7 +4130,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreOpenAndCloseThreadPool</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1752">getStoreOpenAndCloseThreadPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1758">getStoreOpenAndCloseThreadPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
 </li>
 </ul>
 <a name="getStoreFileOpenAndCloseThreadPool-java.lang.String-">
@@ -4139,7 +4139,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileOpenAndCloseThreadPool</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1761">getStoreFileOpenAndCloseThreadPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1767">getStoreFileOpenAndCloseThreadPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
 </li>
 </ul>
 <a name="getOpenAndCloseThreadPool-int-java.lang.String-">
@@ -4148,7 +4148,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getOpenAndCloseThreadPool</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1771">getOpenAndCloseThreadPool</a>(int&nbsp;maxThreads,
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1777">getOpenAndCloseThreadPool</a>(int&nbsp;maxThreads,
                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
 </li>
 </ul>
@@ -4158,7 +4158,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>worthPreFlushing</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1787">worthPreFlushing</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1793">worthPreFlushing</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if its worth doing a flush before we put up the close flag.</dd>
@@ -4171,7 +4171,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1797">getTableDescriptor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1803">getTableDescriptor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getTableDescriptor--">getTableDescriptor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4186,7 +4186,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>setTableDescriptor</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1802">setTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1808">setTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</pre>
 </li>
 </ul>
 <a name="getWAL--">
@@ -4195,7 +4195,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <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/HRegion.html#line.1807">getWAL</a>()</pre>
+<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/HRegion.html#line.1813">getWAL</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>WAL in use for this region</dd>
@@ -4208,7 +4208,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitPolicy</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1814">getSplitPolicy</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1820">getSplitPolicy</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>split policy for this region.</dd>
@@ -4221,7 +4221,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getBaseConf</h4>
-<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1825">getBaseConf</a>()</pre>
+<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1831">getBaseConf</a>()</pre>
 <div class="block">A split takes the config from the parent region & passes it to the daughter
  region's constructor. If 'conf' was passed, you would end up using the HTD
  of the parent region in addition to the new daughter HTD. Pass 'baseConf'
@@ -4238,7 +4238,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <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/HRegion.html#line.1830">getFilesystem</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1836">getFilesystem</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd><code>FileSystem</code> being used by this region</dd>
@@ -4251,7 +4251,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionFileSystem</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1835">getRegionFileSystem</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1841">getRegionFileSystem</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegionFileSystem</code></a> used by this region</dd>
@@ -4264,7 +4264,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getEarliestFlushTimeForAllStores</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1840">getEarliestFlushTimeForAllStores</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1846">getEarliestFlushTimeForAllStores</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getEarliestFlushTimeForAllStores--">getEarliestFlushTimeForAllStores</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4281,7 +4281,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getOldestHfileTs</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1845">getOldestHfileTs</a>(boolean&nbsp;majorCompactionOnly)
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1851">getOldestHfileTs</a>(boolean&nbsp;majorCompactionOnly)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getOldestHfileTs-boolean-">Region</a></code></span></div>
 <div class="block">This can be used to determine the last time all files of this region were major compacted.</div>
@@ -4303,7 +4303,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>setCompleteSequenceId</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1873">setCompleteSequenceId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;regionLoadBldr)</pre>
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1879">setCompleteSequenceId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;regionLoadBldr)</pre>
 </li>
 </ul>
 <a name="doRegionCompactionPrep--">
@@ -4312,7 +4312,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doRegionCompactionPrep</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1899">doRegionCompactionPrep</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1905">doRegionCompactionPrep</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Do preparation for pending compaction.</div>
 <dl>
@@ -4327,7 +4327,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1915">compact</a>(boolean&nbsp;majorCompaction)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1921">compact</a>(boolean&nbsp;majorCompaction)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Synchronously compact all stores in the region.
  <p>This operation could block for a long time, so don't call it from a
@@ -4351,7 +4351,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compactStores</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1940">compactStores</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1946">compactStores</a>()
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is a helper function that compact all the stores synchronously.
  <p>
@@ -4368,7 +4368,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compactStore</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1955">compactStore</a>(byte[]&nbsp;family,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1961">compactStore</a>(byte[]&nbsp;family,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;throughputController)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is a helper function that compact the given store.
@@ -4386,7 +4386,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1978">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1984">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;throughputController)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4416,7 +4416,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1983">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1989">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;throughputController,
                        <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)
@@ -4433,7 +4433,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>flush</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2151">flush</a>(boolean&nbsp;force)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2157">flush</a>(boolean&nbsp;force)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Flush the cache.
 
@@ -4465,7 +4465,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>flushcache</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2198">flushcache</a>(boolean&nbsp;forceFlushAllStores,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2204">flushcache</a>(boolean&nbsp;forceFlushAllStores,
                                           boolean&nbsp;writeFlushRequestWalMarker,
                                           <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4502,7 +4502,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFlushStore</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2281">shouldFlushStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2287">shouldFlushStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store)</pre>
 <div class="block">Should the store be flushed because it is old enough.
  <p>
  Every FlushPolicy should call this to determine whether a store is old enough to flush (except
@@ -4516,7 +4516,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFlush</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2310">shouldFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;whyFlush)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2316">shouldFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;whyFlush)</pre>
 <div class="block">Should the memstore be flushed now</div>
 </li>
 </ul>
@@ -4526,7 +4526,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalFlushcache</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2347">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2353">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Flushing all stores.</div>
 <dl>
@@ -4543,7 +4543,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalFlushcache</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2355">internalFlushcache</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;storesToFlush,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2361">internalFlushcache</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;storesToFlush,
                                                    <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
                                                    boolean&nbsp;writeFlushWalMarker,
                                                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)
@@ -4563,7 +4563,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalFlushcache</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2379">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2385">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                      long&nbsp;myseqid,
                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;storesToFlush,
                                                      <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
@@ -4599,7 +4599,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalPrepareFlushCache</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2393">internalPrepareFlushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2399">internalPrepareFlushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                                long&nbsp;myseqid,
                                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;storesToFlush,
                                                                <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
@@ -4618,7 +4618,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>logFatLineOnFlush</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2533">logFatLineOnFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;storesToFlush,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2539">logFatLineOnFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;storesToFlush,
                                long&nbsp;sequenceId)</pre>
 <div class="block">Utility method broken out of internalPrepareFlushCache so that method is smaller.</div>
 </li>
@@ -4629,7 +4629,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doAbortFlushToWAL</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2561">doAbortFlushToWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2567">doAbortFlushToWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                long&nbsp;flushOpSeqId,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;committedFiles)</pre>
 </li>
@@ -4640,7 +4640,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doSyncOfUnflushedWALChanges</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2581">doSyncOfUnflushedWALChanges</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2587">doSyncOfUnflushedWALChanges</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                 <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)
                                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Sync unflushed WAL changes. See HBASE-8208 for details</div>
@@ -4656,7 +4656,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isAllF

<TRUNCATED>

[02/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html
index e383c6b..6b66d6d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html
@@ -611,12 +611,12 @@
 <span class="sourceLineNo">603</span><a name="line.603"></a>
 <span class="sourceLineNo">604</span>  /**<a name="line.604"></a>
 <span class="sourceLineNo">605</span>   * Make puts to put the input value into each combination of row, family, and qualifier<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   * @param rows<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * @param families<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @param qualifiers<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * @param value<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * @return<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * @throws IOException<a name="line.611"></a>
+<span class="sourceLineNo">606</span>   * @param rows the rows to use<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   * @param families the families to use<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   * @param qualifiers the qualifiers to use<a name="line.608"></a>
+<span class="sourceLineNo">609</span>   * @param value the values to use<a name="line.609"></a>
+<span class="sourceLineNo">610</span>   * @return the dot product of the given rows, families, qualifiers, and values<a name="line.610"></a>
+<span class="sourceLineNo">611</span>   * @throws IOException if there is a problem creating one of the Put objects<a name="line.611"></a>
 <span class="sourceLineNo">612</span>   */<a name="line.612"></a>
 <span class="sourceLineNo">613</span>  static ArrayList&lt;Put&gt; createPuts(byte[][] rows, byte[][] families, byte[][] qualifiers,<a name="line.613"></a>
 <span class="sourceLineNo">614</span>      byte[] value) throws IOException {<a name="line.614"></a>
@@ -640,11 +640,11 @@
 <span class="sourceLineNo">632</span>  /**<a name="line.632"></a>
 <span class="sourceLineNo">633</span>   * Make key values to represent each possible combination of family and qualifier in the specified<a name="line.633"></a>
 <span class="sourceLineNo">634</span>   * row.<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   * @param row<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   * @param families<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   * @param qualifiers<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   * @param value<a name="line.638"></a>
-<span class="sourceLineNo">639</span>   * @return<a name="line.639"></a>
+<span class="sourceLineNo">635</span>   * @param row the row to use<a name="line.635"></a>
+<span class="sourceLineNo">636</span>   * @param families the families to use<a name="line.636"></a>
+<span class="sourceLineNo">637</span>   * @param qualifiers the qualifiers to use<a name="line.637"></a>
+<span class="sourceLineNo">638</span>   * @param value the values to use<a name="line.638"></a>
+<span class="sourceLineNo">639</span>   * @return the dot product of the given families, qualifiers, and values for a given row<a name="line.639"></a>
 <span class="sourceLineNo">640</span>   */<a name="line.640"></a>
 <span class="sourceLineNo">641</span>  static ArrayList&lt;Cell&gt; createKeyValuesForRow(byte[] row, byte[][] families, byte[][] qualifiers,<a name="line.641"></a>
 <span class="sourceLineNo">642</span>      byte[] value) {<a name="line.642"></a>
@@ -780,9 +780,9 @@
 <span class="sourceLineNo">772</span>  /**<a name="line.772"></a>
 <span class="sourceLineNo">773</span>   * Exhausts the scanner by calling next repetitively. Once completely exhausted, close scanner and<a name="line.773"></a>
 <span class="sourceLineNo">774</span>   * return total cell count<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * @param scanner<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @return<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   * @throws Exception<a name="line.777"></a>
+<span class="sourceLineNo">775</span>   * @param scanner the scanner to exhaust<a name="line.775"></a>
+<span class="sourceLineNo">776</span>   * @return the number of cells counted<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * @throws Exception if there is a problem retrieving cells from the scanner<a name="line.777"></a>
 <span class="sourceLineNo">778</span>   */<a name="line.778"></a>
 <span class="sourceLineNo">779</span>  private int countCellsFromScanner(ResultScanner scanner) throws Exception {<a name="line.779"></a>
 <span class="sourceLineNo">780</span>    Result result = null;<a name="line.780"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.ExplainingPredicate.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.ExplainingPredicate.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.ExplainingPredicate.html
index 15f1e52..65b58eb 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.ExplainingPredicate.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.ExplainingPredicate.html
@@ -91,7 +91,7 @@
 <span class="sourceLineNo">083</span>  /**<a name="line.83"></a>
 <span class="sourceLineNo">084</span>   * A predicate 'closure' used by the {@link Waiter#waitFor(Configuration, long, Predicate)} and<a name="line.84"></a>
 <span class="sourceLineNo">085</span>   * {@link Waiter#waitFor(Configuration, long, Predicate)} and<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.<a name="line.86"></a>
+<span class="sourceLineNo">086</span>   * {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate)} methods.<a name="line.86"></a>
 <span class="sourceLineNo">087</span>   */<a name="line.87"></a>
 <span class="sourceLineNo">088</span>  @InterfaceAudience.Private<a name="line.88"></a>
 <span class="sourceLineNo">089</span>  public interface Predicate&lt;E extends Exception&gt; {<a name="line.89"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.Predicate.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.Predicate.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.Predicate.html
index 15f1e52..65b58eb 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.Predicate.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.Predicate.html
@@ -91,7 +91,7 @@
 <span class="sourceLineNo">083</span>  /**<a name="line.83"></a>
 <span class="sourceLineNo">084</span>   * A predicate 'closure' used by the {@link Waiter#waitFor(Configuration, long, Predicate)} and<a name="line.84"></a>
 <span class="sourceLineNo">085</span>   * {@link Waiter#waitFor(Configuration, long, Predicate)} and<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.<a name="line.86"></a>
+<span class="sourceLineNo">086</span>   * {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate)} methods.<a name="line.86"></a>
 <span class="sourceLineNo">087</span>   */<a name="line.87"></a>
 <span class="sourceLineNo">088</span>  @InterfaceAudience.Private<a name="line.88"></a>
 <span class="sourceLineNo">089</span>  public interface Predicate&lt;E extends Exception&gt; {<a name="line.89"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.html
index 15f1e52..65b58eb 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/Waiter.html
@@ -91,7 +91,7 @@
 <span class="sourceLineNo">083</span>  /**<a name="line.83"></a>
 <span class="sourceLineNo">084</span>   * A predicate 'closure' used by the {@link Waiter#waitFor(Configuration, long, Predicate)} and<a name="line.84"></a>
 <span class="sourceLineNo">085</span>   * {@link Waiter#waitFor(Configuration, long, Predicate)} and<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.<a name="line.86"></a>
+<span class="sourceLineNo">086</span>   * {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate)} methods.<a name="line.86"></a>
 <span class="sourceLineNo">087</span>   */<a name="line.87"></a>
 <span class="sourceLineNo">088</span>  @InterfaceAudience.Private<a name="line.88"></a>
 <span class="sourceLineNo">089</span>  public interface Predicate&lt;E extends Exception&gt; {<a name="line.89"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestHFileArchiving.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestHFileArchiving.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestHFileArchiving.html
index dcd88c8..b4dfd9e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestHFileArchiving.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/backup/TestHFileArchiving.html
@@ -433,9 +433,9 @@
 <span class="sourceLineNo">425</span><a name="line.425"></a>
 <span class="sourceLineNo">426</span>  /**<a name="line.426"></a>
 <span class="sourceLineNo">427</span>   * Get the names of all the files below the given directory<a name="line.427"></a>
-<span class="sourceLineNo">428</span>   * @param fs<a name="line.428"></a>
-<span class="sourceLineNo">429</span>   * @param archiveDir<a name="line.429"></a>
-<span class="sourceLineNo">430</span>   * @return<a name="line.430"></a>
+<span class="sourceLineNo">428</span>   * @param fs the file system to inspect<a name="line.428"></a>
+<span class="sourceLineNo">429</span>   * @param archiveDir the directory in which to look<a name="line.429"></a>
+<span class="sourceLineNo">430</span>   * @return a list of all files in the directory and sub-directories<a name="line.430"></a>
 <span class="sourceLineNo">431</span>   * @throws IOException<a name="line.431"></a>
 <span class="sourceLineNo">432</span>   */<a name="line.432"></a>
 <span class="sourceLineNo">433</span>  private List&lt;String&gt; getAllFileNames(final FileSystem fs, Path archiveDir) throws IOException {<a name="line.433"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.SleepAtFirstRpcCall.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.SleepAtFirstRpcCall.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.SleepAtFirstRpcCall.html
index c9b4171..8ddbc7a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.SleepAtFirstRpcCall.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.SleepAtFirstRpcCall.html
@@ -58,7 +58,7 @@
 <span class="sourceLineNo">050</span>  /**<a name="line.50"></a>
 <span class="sourceLineNo">051</span>   * Get a Mocked {@link ClusterConnection} that goes with the passed &lt;code&gt;conf&lt;/code&gt;<a name="line.51"></a>
 <span class="sourceLineNo">052</span>   * configuration instance.  Minimally the mock will return<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * &lt;code&gt;conf&lt;/conf&gt; when {@link ClusterConnection#getConfiguration()} is invoked.<a name="line.53"></a>
+<span class="sourceLineNo">053</span>   * &amp;lt;code&gt;conf&amp;lt;/conf&gt; when {@link ClusterConnection#getConfiguration()} is invoked.<a name="line.53"></a>
 <span class="sourceLineNo">054</span>   * Be sure to shutdown the connection when done by calling<a name="line.54"></a>
 <span class="sourceLineNo">055</span>   * {@link Connection#close()} else it will stick around; this is probably not what you want.<a name="line.55"></a>
 <span class="sourceLineNo">056</span>   * @param conf configuration<a name="line.56"></a>
@@ -156,7 +156,7 @@
 <span class="sourceLineNo">148</span>   * @param conf configuration<a name="line.148"></a>
 <span class="sourceLineNo">149</span>   * @return ClusterConnection object for &lt;code&gt;conf&lt;/code&gt;<a name="line.149"></a>
 <span class="sourceLineNo">150</span>   * @throws ZooKeeperConnectionException<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * @see @link<a name="line.151"></a>
+<span class="sourceLineNo">151</span>   * [Dead link]: See also<a name="line.151"></a>
 <span class="sourceLineNo">152</span>   * {http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html#spy(T)}<a name="line.152"></a>
 <span class="sourceLineNo">153</span>   */<a name="line.153"></a>
 <span class="sourceLineNo">154</span>  public static ClusterConnection getSpiedConnection(final Configuration conf)<a name="line.154"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html
index c9b4171..8ddbc7a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html
@@ -58,7 +58,7 @@
 <span class="sourceLineNo">050</span>  /**<a name="line.50"></a>
 <span class="sourceLineNo">051</span>   * Get a Mocked {@link ClusterConnection} that goes with the passed &lt;code&gt;conf&lt;/code&gt;<a name="line.51"></a>
 <span class="sourceLineNo">052</span>   * configuration instance.  Minimally the mock will return<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * &lt;code&gt;conf&lt;/conf&gt; when {@link ClusterConnection#getConfiguration()} is invoked.<a name="line.53"></a>
+<span class="sourceLineNo">053</span>   * &amp;lt;code&gt;conf&amp;lt;/conf&gt; when {@link ClusterConnection#getConfiguration()} is invoked.<a name="line.53"></a>
 <span class="sourceLineNo">054</span>   * Be sure to shutdown the connection when done by calling<a name="line.54"></a>
 <span class="sourceLineNo">055</span>   * {@link Connection#close()} else it will stick around; this is probably not what you want.<a name="line.55"></a>
 <span class="sourceLineNo">056</span>   * @param conf configuration<a name="line.56"></a>
@@ -156,7 +156,7 @@
 <span class="sourceLineNo">148</span>   * @param conf configuration<a name="line.148"></a>
 <span class="sourceLineNo">149</span>   * @return ClusterConnection object for &lt;code&gt;conf&lt;/code&gt;<a name="line.149"></a>
 <span class="sourceLineNo">150</span>   * @throws ZooKeeperConnectionException<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * @see @link<a name="line.151"></a>
+<span class="sourceLineNo">151</span>   * [Dead link]: See also<a name="line.151"></a>
 <span class="sourceLineNo">152</span>   * {http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html#spy(T)}<a name="line.152"></a>
 <span class="sourceLineNo">153</span>   */<a name="line.153"></a>
 <span class="sourceLineNo">154</span>  public static ClusterConnection getSpiedConnection(final Configuration conf)<a name="line.154"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html
new file mode 100644
index 0000000..4f9db58
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html
@@ -0,0 +1,158 @@
+<!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> *<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
+<span class="sourceLineNo">012</span> *<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.client;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Arrays;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.TableName;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.client.TableDescriptorUtils.TableDescriptorDelta;<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.apache.hadoop.hbase.util.Bytes;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.ClassRule;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.junit.Test;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.junit.experimental.categories.Category;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>@Category(SmallTests.class)<a name="line.34"></a>
+<span class="sourceLineNo">035</span>public class TestTableDescriptorUtils {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  @ClassRule<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.37"></a>
+<span class="sourceLineNo">038</span>      HBaseClassTestRule.forClass(TestTableDescriptorUtils.class);<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  @Test<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public void testDelta() {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    ColumnFamilyDescriptor cf1 = ColumnFamilyDescriptorBuilder.of("cf1");<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    ColumnFamilyDescriptor cf2 = ColumnFamilyDescriptorBuilder.of("cf2");<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    ColumnFamilyDescriptor cf3 = ColumnFamilyDescriptorBuilder.of("cf3");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    ColumnFamilyDescriptor cf4 = ColumnFamilyDescriptorBuilder.of("cf4");<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    TableDescriptor td = TableDescriptorBuilder<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        .newBuilder(TableName.valueOf("test"))<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        .setColumnFamilies(Arrays.asList(cf1, cf2, cf3, cf4))<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        .build();<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>    TableDescriptorDelta selfCompare = TableDescriptorUtils.computeDelta(td, td);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    assertEquals(0, selfCompare.getColumnsAdded().size());<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    assertEquals(0, selfCompare.getColumnsDeleted().size());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    assertEquals(0, selfCompare.getColumnsModified().size());<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>    ColumnFamilyDescriptor modCf2 = ColumnFamilyDescriptorBuilder<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        .newBuilder(cf2).setMaxVersions(5).build();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    ColumnFamilyDescriptor modCf3 = ColumnFamilyDescriptorBuilder<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        .newBuilder(cf3).setMaxVersions(5).build();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    ColumnFamilyDescriptor cf5 = ColumnFamilyDescriptorBuilder.of("cf5");<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    ColumnFamilyDescriptor cf6 = ColumnFamilyDescriptorBuilder.of("cf6");<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    ColumnFamilyDescriptor cf7 = ColumnFamilyDescriptorBuilder.of("cf7");<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    TableDescriptor newTd = TableDescriptorBuilder<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        .newBuilder(td)<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        .removeColumnFamily(Bytes.toBytes("cf1"))<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        .modifyColumnFamily(modCf2)<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        .modifyColumnFamily(modCf3)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        .setColumnFamily(cf5)<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        .setColumnFamily(cf6)<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        .setColumnFamily(cf7)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        .build();<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>    TableDescriptorDelta delta = TableDescriptorUtils.computeDelta(td, newTd);<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    assertEquals(3, delta.getColumnsAdded().size());<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    assertEquals(1, delta.getColumnsDeleted().size());<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    assertEquals(2, delta.getColumnsModified().size());<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>    TableDescriptorDelta inverseDelta = TableDescriptorUtils.computeDelta(newTd, td);<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>    // Equality here relies on implementation detail of the returned Set being a TreeSet<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    assertEquals(delta.getColumnsDeleted(), inverseDelta.getColumnsAdded());<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    assertEquals(delta.getColumnsAdded(), inverseDelta.getColumnsDeleted());<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    assertEquals(delta.getColumnsModified(), inverseDelta.getColumnsModified());<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/StringRange.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/StringRange.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/StringRange.html
index e73a619..1648ba3 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/StringRange.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/filter/StringRange.html
@@ -32,247 +32,259 @@
 <span class="sourceLineNo">024</span>import java.util.HashSet;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.Map;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.Set;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.*;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.Durability;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Put;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.Result;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Table;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.FilterTests;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.junit.After;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.junit.AfterClass;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.junit.Before;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.BeforeClass;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.ClassRule;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.Rule;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.Test;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.experimental.categories.Category;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.junit.rules.TestName;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.slf4j.Logger;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.slf4j.LoggerFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>class StringRange {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private String start = null;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  private String end = null;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private boolean startInclusive = true;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private boolean endInclusive = false;<a name="line.55"></a>
+<span class="sourceLineNo">027</span>import java.util.Objects;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Set;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.Cell;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.KeyValue;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.KeyValueTestUtil;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.TableName;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Durability;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.Put;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.Result;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.Table;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.testclassification.FilterTests;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.After;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.junit.AfterClass;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.Before;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.junit.BeforeClass;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.ClassRule;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.Rule;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Test;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.experimental.categories.Category;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.rules.TestName;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.slf4j.Logger;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.slf4j.LoggerFactory;<a name="line.55"></a>
 <span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public StringRange(String start, boolean startInclusive, String end,<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      boolean endInclusive) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    this.start = start;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    this.startInclusive = startInclusive;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    this.end = end;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    this.endInclusive = endInclusive;<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>  public String getStart() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    return this.start;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  public String getEnd() {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    return this.end;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public boolean isStartInclusive() {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    return this.startInclusive;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public boolean isEndInclusive() {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    return this.endInclusive;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  @Override<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  public int hashCode() {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    int hashCode = 0;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    if (this.start != null) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      hashCode ^= this.start.hashCode();<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>    if (this.end != null) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      hashCode ^= this.end.hashCode();<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return hashCode;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">057</span>class StringRange {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private String start = null;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private String end = null;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private boolean startInclusive = true;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private boolean endInclusive = false;<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public StringRange(String start, boolean startInclusive, String end,<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      boolean endInclusive) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    this.start = start;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    this.startInclusive = startInclusive;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    this.end = end;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this.endInclusive = endInclusive;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public String getStart() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    return this.start;<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>  public String getEnd() {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    return this.end;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  public boolean isStartInclusive() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    return this.startInclusive;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public boolean isEndInclusive() {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    return this.endInclusive;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  @Override<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public int hashCode() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    int hashCode = 0;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    if (this.start != null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      hashCode ^= this.start.hashCode();<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>  @Override<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public String toString() {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    String result = (this.startInclusive ? "[" : "(")<a name="line.96"></a>
-<span class="sourceLineNo">097</span>          + (this.start == null ? null : this.start) + ", "<a name="line.97"></a>
-<span class="sourceLineNo">098</span>          + (this.end == null ? null : this.end)<a name="line.98"></a>
-<span class="sourceLineNo">099</span>          + (this.endInclusive ? "]" : ")");<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    return result;<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>   public boolean inRange(String value) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    boolean afterStart = true;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    if (this.start != null) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      int startCmp = value.compareTo(this.start);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      afterStart = this.startInclusive ? startCmp &gt;= 0 : startCmp &gt; 0;<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>    boolean beforeEnd = true;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    if (this.end != null) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      int endCmp = value.compareTo(this.end);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      beforeEnd = this.endInclusive ? endCmp &lt;= 0 : endCmp &lt; 0;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>    return afterStart &amp;&amp; beforeEnd;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>}<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>@Category({FilterTests.class, MediumTests.class})<a name="line.122"></a>
-<span class="sourceLineNo">123</span>public class TestColumnRangeFilter {<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  @ClassRule<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      HBaseClassTestRule.forClass(TestColumnRangeFilter.class);<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static final Logger LOG = LoggerFactory.getLogger(TestColumnRangeFilter.class);<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  @Rule<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public TestName name = new TestName();<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>   * @throws java.lang.Exception<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  @BeforeClass<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  public static void setUpBeforeClass() throws Exception {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    TEST_UTIL.startMiniCluster();<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  /**<a name="line.144"></a>
-<span class="sourceLineNo">145</span>   * @throws java.lang.Exception<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   */<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  @AfterClass<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  public static void tearDownAfterClass() throws Exception {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    TEST_UTIL.shutdownMiniCluster();<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>   * @throws java.lang.Exception<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  @Before<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  public void setUp() throws Exception {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    // Nothing to do.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  }<a name="line.158"></a>
+<span class="sourceLineNo">094</span>    if (this.end != null) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      hashCode ^= this.end.hashCode();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return hashCode;<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>  @Override<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  public boolean equals(Object obj) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    if (this == obj) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      return true;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    if (obj == null) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      return false;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    if (!(obj instanceof StringRange)) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    StringRange oth = (StringRange) obj;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return this.startInclusive == oth.startInclusive &amp;&amp;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        this.endInclusive == oth.endInclusive &amp;&amp;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        Objects.equals(this.start, oth.start) &amp;&amp;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        Objects.equals(this.end, oth.end);<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>  @Override<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public String toString() {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    String result = (this.startInclusive ? "[" : "(")<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          + (this.start == null ? null : this.start) + ", "<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          + (this.end == null ? null : this.end)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          + (this.endInclusive ? "]" : ")");<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    return result;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>   public boolean inRange(String value) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    boolean afterStart = true;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    if (this.start != null) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      int startCmp = value.compareTo(this.start);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      afterStart = this.startInclusive ? startCmp &gt;= 0 : startCmp &gt; 0;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>    boolean beforeEnd = true;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    if (this.end != null) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      int endCmp = value.compareTo(this.end);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      beforeEnd = this.endInclusive ? endCmp &lt;= 0 : endCmp &lt; 0;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    return afterStart &amp;&amp; beforeEnd;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>}<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>@Category({FilterTests.class, MediumTests.class})<a name="line.146"></a>
+<span class="sourceLineNo">147</span>public class TestColumnRangeFilter {<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  @ClassRule<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      HBaseClassTestRule.forClass(TestColumnRangeFilter.class);<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private static final Logger LOG = LoggerFactory.getLogger(TestColumnRangeFilter.class);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  @Rule<a name="line.157"></a>
+<span class="sourceLineNo">158</span>  public TestName name = new TestName();<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>   * @throws java.lang.Exception<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   */<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  @After<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  public void tearDown() throws Exception {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    // Nothing to do.<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void TestColumnRangeFilterClient() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    String family = "Family";<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Table ht = TEST_UTIL.createTable(TableName.valueOf(name.getMethodName()),<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        Bytes.toBytes(family), Integer.MAX_VALUE);<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    List&lt;String&gt; rows = generateRandomWords(10, 8);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    long maxTimestamp = 2;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    List&lt;String&gt; columns = generateRandomWords(20000, 8);<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    List&lt;KeyValue&gt; kvList = new ArrayList&lt;&gt;();<a name="line.178"></a>
+<span class="sourceLineNo">160</span>  @BeforeClass<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  public static void setUpBeforeClass() throws Exception {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    TEST_UTIL.startMiniCluster();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  }<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>  @AfterClass<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public static void tearDownAfterClass() throws Exception {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    TEST_UTIL.shutdownMiniCluster();<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>  @Before<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public void setUp() throws Exception {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // Nothing to do.<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>  @After<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public void tearDown() throws Exception {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // Nothing to do.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
 <span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    Map&lt;StringRange, List&lt;KeyValue&gt;&gt; rangeMap = new HashMap&lt;&gt;();<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>    rangeMap.put(new StringRange(null, true, "b", false),<a name="line.182"></a>
-<span class="sourceLineNo">183</span>        new ArrayList&lt;&gt;());<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    rangeMap.put(new StringRange("p", true, "q", false),<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        new ArrayList&lt;&gt;());<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    rangeMap.put(new StringRange("r", false, "s", true),<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        new ArrayList&lt;&gt;());<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    rangeMap.put(new StringRange("z", false, null, false),<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        new ArrayList&lt;&gt;());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    String valueString = "ValueString";<a name="line.190"></a>
+<span class="sourceLineNo">180</span>  @Test<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  public void TestColumnRangeFilterClient() throws Exception {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    String family = "Family";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    Table ht = TEST_UTIL.createTable(TableName.valueOf(name.getMethodName()),<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        Bytes.toBytes(family), Integer.MAX_VALUE);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    List&lt;String&gt; rows = generateRandomWords(10, 8);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    long maxTimestamp = 2;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    List&lt;String&gt; columns = generateRandomWords(20000, 8);<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>    List&lt;KeyValue&gt; kvList = new ArrayList&lt;&gt;();<a name="line.190"></a>
 <span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>    for (String row : rows) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      Put p = new Put(Bytes.toBytes(row));<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      for (String column : columns) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        for (long timestamp = 1; timestamp &lt;= maxTimestamp; timestamp++) {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>          KeyValue kv = KeyValueTestUtil.create(row, family, column, timestamp,<a name="line.197"></a>
-<span class="sourceLineNo">198</span>              valueString);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>          p.add(kv);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>          kvList.add(kv);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          for (StringRange s : rangeMap.keySet()) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>            if (s.inRange(column)) {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>              rangeMap.get(s).add(kv);<a name="line.203"></a>
-<span class="sourceLineNo">204</span>            }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>          }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      ht.put(p);<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>    TEST_UTIL.flush();<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>    ColumnRangeFilter filter;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    Scan scan = new Scan();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    scan.setMaxVersions();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    for (StringRange s : rangeMap.keySet()) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      filter = new ColumnRangeFilter(s.getStart() == null ? null<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          : Bytes.toBytes(s.getStart()), s.isStartInclusive(),<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          s.getEnd() == null ? null : Bytes.toBytes(s.getEnd()),<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          s.isEndInclusive());<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      scan.setFilter(filter);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      ResultScanner scanner = ht.getScanner(scan);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      List&lt;Cell&gt; results = new ArrayList&lt;&gt;();<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      LOG.info("scan column range: " + s.toString());<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      long timeBeforeScan = System.currentTimeMillis();<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>      Result result;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      while ((result = scanner.next()) != null) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        for (Cell kv : result.listCells()) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          results.add(kv);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      long scanTime = System.currentTimeMillis() - timeBeforeScan;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      scanner.close();<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      LOG.info("scan time = " + scanTime + "ms");<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      LOG.info("found " + results.size() + " results");<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      LOG.info("Expecting " + rangeMap.get(s).size() + " results");<a name="line.237"></a>
+<span class="sourceLineNo">192</span>    Map&lt;StringRange, List&lt;KeyValue&gt;&gt; rangeMap = new HashMap&lt;&gt;();<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    rangeMap.put(new StringRange(null, true, "b", false),<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        new ArrayList&lt;&gt;());<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    rangeMap.put(new StringRange("p", true, "q", false),<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        new ArrayList&lt;&gt;());<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    rangeMap.put(new StringRange("r", false, "s", true),<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        new ArrayList&lt;&gt;());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    rangeMap.put(new StringRange("z", false, null, false),<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        new ArrayList&lt;&gt;());<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    String valueString = "ValueString";<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    for (String row : rows) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      Put p = new Put(Bytes.toBytes(row));<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      p.setDurability(Durability.SKIP_WAL);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      for (String column : columns) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        for (long timestamp = 1; timestamp &lt;= maxTimestamp; timestamp++) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>          KeyValue kv = KeyValueTestUtil.create(row, family, column, timestamp,<a name="line.209"></a>
+<span class="sourceLineNo">210</span>              valueString);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>          p.add(kv);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          kvList.add(kv);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          for (StringRange s : rangeMap.keySet()) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>            if (s.inRange(column)) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>              rangeMap.get(s).add(kv);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      ht.put(p);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>    TEST_UTIL.flush();<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    ColumnRangeFilter filter;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    Scan scan = new Scan();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    scan.setMaxVersions();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    for (StringRange s : rangeMap.keySet()) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      filter = new ColumnRangeFilter(s.getStart() == null ? null<a name="line.229"></a>
+<span class="sourceLineNo">230</span>          : Bytes.toBytes(s.getStart()), s.isStartInclusive(),<a name="line.230"></a>
+<span class="sourceLineNo">231</span>          s.getEnd() == null ? null : Bytes.toBytes(s.getEnd()),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>          s.isEndInclusive());<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      scan.setFilter(filter);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      ResultScanner scanner = ht.getScanner(scan);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      List&lt;Cell&gt; results = new ArrayList&lt;&gt;();<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      LOG.info("scan column range: " + s.toString());<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      long timeBeforeScan = System.currentTimeMillis();<a name="line.237"></a>
 <span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>      /*<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      for (KeyValue kv : results) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        LOG.info("found row " + Bytes.toString(kv.getRow()) + ", column "<a name="line.241"></a>
-<span class="sourceLineNo">242</span>            + Bytes.toString(kv.getQualifier()));<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><a name="line.245"></a>
-<span class="sourceLineNo">246</span>      assertEquals(rangeMap.get(s).size(), results.size());<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    ht.close();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">239</span>      Result result;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      while ((result = scanner.next()) != null) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        for (Cell kv : result.listCells()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>          results.add(kv);<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>      long scanTime = System.currentTimeMillis() - timeBeforeScan;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      scanner.close();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      LOG.info("scan time = " + scanTime + "ms");<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      LOG.info("found " + results.size() + " results");<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      LOG.info("Expecting " + rangeMap.get(s).size() + " results");<a name="line.249"></a>
 <span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>  List&lt;String&gt; generateRandomWords(int numberOfWords, int maxLengthOfWords) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    Set&lt;String&gt; wordSet = new HashSet&lt;&gt;();<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    for (int i = 0; i &lt; numberOfWords; i++) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      int lengthOfWords = (int) (Math.random() * maxLengthOfWords) + 1;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      char[] wordChar = new char[lengthOfWords];<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      for (int j = 0; j &lt; wordChar.length; j++) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        wordChar[j] = (char) (Math.random() * 26 + 97);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      String word = new String(wordChar);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      wordSet.add(word);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    List&lt;String&gt; wordList = new ArrayList&lt;&gt;(wordSet);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    return wordList;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>}<a name="line.266"></a>
-<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">251</span>      /*<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      for (KeyValue kv : results) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        LOG.info("found row " + Bytes.toString(kv.getRow()) + ", column "<a name="line.253"></a>
+<span class="sourceLineNo">254</span>            + Bytes.toString(kv.getQualifier()));<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      */<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>      assertEquals(rangeMap.get(s).size(), results.size());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    ht.close();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  List&lt;String&gt; generateRandomWords(int numberOfWords, int maxLengthOfWords) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    Set&lt;String&gt; wordSet = new HashSet&lt;&gt;();<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    for (int i = 0; i &lt; numberOfWords; i++) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      int lengthOfWords = (int) (Math.random() * maxLengthOfWords) + 1;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      char[] wordChar = new char[lengthOfWords];<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      for (int j = 0; j &lt; wordChar.length; j++) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        wordChar[j] = (char) (Math.random() * 26 + 97);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      String word = new String(wordChar);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      wordSet.add(word);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    List&lt;String&gt; wordList = new ArrayList&lt;&gt;(wordSet);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    return wordList;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>}<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
 
 
 


[51/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

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


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

Branch: refs/heads/asf-site
Commit: 4df09ed9284c706f6f4e8a0139e491f75712094e
Parents: 33f757f
Author: jenkins <bu...@apache.org>
Authored: Wed May 30 14:48:35 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Wed May 30 14:48:35 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |  5963 ++-
 apidocs/allclasses-frame.html                   |     1 +
 apidocs/allclasses-noframe.html                 |     1 +
 apidocs/index-all.html                          |     7 +
 .../hbase/client/TableDescriptorBuilder.html    |     4 +-
 .../hbase/client/TableDescriptorUtils.html      |   250 +
 .../hbase/client/WrongRowIOException.html       |     4 +-
 .../hbase/client/class-use/TableDescriptor.html |    38 +-
 .../client/class-use/TableDescriptorUtils.html  |   125 +
 .../hadoop/hbase/client/package-frame.html      |     1 +
 .../hadoop/hbase/client/package-summary.html    |     4 +
 .../hadoop/hbase/client/package-tree.html       |     1 +
 .../hbase/client/replication/TableCFs.html      |     2 +-
 .../org/apache/hadoop/hbase/net/Address.html    |     2 +-
 .../hadoop/hbase/util/SimpleByteRange.html      |     2 +-
 .../hbase/util/SimpleMutableByteRange.html      |     2 +-
 .../hbase/util/SimplePositionedByteRange.html   |     6 +-
 .../util/SimplePositionedMutableByteRange.html  |     6 +-
 apidocs/overview-tree.html                      |     1 +
 .../hbase/client/TableDescriptorUtils.html      |   171 +
 .../hbase/client/replication/TableCFs.html      |     2 +-
 .../org/apache/hadoop/hbase/net/Address.html    |     2 +-
 .../apache/hadoop/hbase/util/OrderedBytes.html  |     2 +-
 book.html                                       |     5 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 32287 +++++++++--------
 checkstyle.rss                                  |   570 +-
 coc.html                                        |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     8 +-
 devapidocs/allclasses-frame.html                |     3 +
 devapidocs/allclasses-noframe.html              |     3 +
 devapidocs/constant-values.html                 |     6 +-
 devapidocs/index-all.html                       |    83 +-
 .../hbase/backup/impl/RestoreTablesClient.html  |    10 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../hadoop/hbase/class-use/TableName.html       |    28 +-
 .../hadoop/hbase/client/ClusterConnection.html  |     4 +-
 .../hbase/client/ConnectionImplementation.html  |     4 +
 ...nUtils.ShortCircuitingClusterConnection.html |     4 +
 ...riptorBuilder.ModifyableTableDescriptor.html |     4 +-
 ...bleDescriptorUtils.TableDescriptorDelta.html |   368 +
 .../hbase/client/TableDescriptorUtils.html      |   305 +
 .../hbase/client/TableSnapshotScanner.html      |     4 +-
 .../hbase/client/class-use/TableDescriptor.html |    74 +-
 ...bleDescriptorUtils.TableDescriptorDelta.html |   171 +
 .../client/class-use/TableDescriptorUtils.html  |   125 +
 .../hadoop/hbase/client/package-frame.html      |     2 +
 .../hadoop/hbase/client/package-summary.html    |     8 +
 .../hadoop/hbase/client/package-tree.html       |    22 +-
 .../apache/hadoop/hbase/client/package-use.html |     7 +-
 .../hbase/client/replication/TableCFs.html      |     2 +-
 .../class-use/MasterCoprocessorEnvironment.html |    77 +-
 .../coprocessor/class-use/ObserverContext.html  |   115 +-
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |    10 +-
 .../hfile/HFileBlockIndex.BlockIndexChunk.html  |     2 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../org/apache/hadoop/hbase/ipc/RpcServer.html  |     4 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../assignment/GCMergedRegionsProcedure.html    |     2 +-
 .../master/assignment/GCRegionProcedure.html    |     2 +-
 .../assignment/MergeTableRegionsProcedure.html  |     2 +-
 .../master/assignment/MoveRegionProcedure.html  |     2 +-
 .../assignment/SplitTableRegionProcedure.html   |     2 +-
 .../hadoop/hbase/master/package-tree.html       |     6 +-
 .../AbstractStateMachineNamespaceProcedure.html |     2 +-
 .../AbstractStateMachineRegionProcedure.html    |     2 +-
 .../AbstractStateMachineTableProcedure.html     |     4 +-
 .../procedure/CloneSnapshotProcedure.html       |     2 +-
 .../procedure/CreateNamespaceProcedure.html     |     2 +-
 .../master/procedure/CreateTableProcedure.html  |     2 +-
 .../procedure/DeleteNamespaceProcedure.html     |     2 +-
 .../master/procedure/DeleteTableProcedure.html  |     2 +-
 .../master/procedure/DisableTableProcedure.html |     2 +-
 .../master/procedure/EnableTableProcedure.html  |     2 +-
 .../procedure/ModifyNamespaceProcedure.html     |     2 +-
 .../master/procedure/ModifyTableProcedure.html  |     2 +-
 .../master/procedure/RecoverMetaProcedure.html  |     6 +-
 .../procedure/ReopenTableRegionsProcedure.html  |   640 +
 .../procedure/RestoreSnapshotProcedure.html     |     6 +-
 .../master/procedure/ServerCrashProcedure.html  |     2 +-
 .../procedure/TableProcedureInterface.html      |     2 +-
 .../procedure/TruncateTableProcedure.html       |     2 +-
 .../AbstractStateMachineTableProcedure.html     |     8 +-
 .../procedure/class-use/MasterProcedureEnv.html |   154 +-
 .../class-use/ReopenTableRegionsProcedure.html  |   125 +
 ...leProcedureInterface.TableOperationType.html |     8 +-
 .../class-use/TableProcedureInterface.html      |     8 +-
 .../hbase/master/procedure/package-frame.html   |     1 +
 .../hbase/master/procedure/package-summary.html |    26 +-
 .../hbase/master/procedure/package-tree.html    |     5 +-
 .../replication/AbstractPeerProcedure.html      |     2 +-
 .../master/replication/AddPeerProcedure.html    |     2 +-
 .../replication/DisablePeerProcedure.html       |     2 +-
 .../master/replication/EnablePeerProcedure.html |     2 +-
 .../master/replication/ModifyPeerProcedure.html |    38 +-
 .../master/replication/RemovePeerProcedure.html |     2 +-
 .../replication/UpdatePeerConfigProcedure.html  |     2 +-
 .../org/apache/hadoop/hbase/net/Address.html    |     2 +-
 .../hadoop/hbase/net/class-use/Address.html     |    36 -
 .../apache/hadoop/hbase/net/package-use.html    |    24 -
 .../org/apache/hadoop/hbase/package-tree.html   |    14 +-
 .../hbase/procedure2/StateMachineProcedure.html |    38 +-
 .../hbase/procedure2/class-use/Procedure.html   |    20 +-
 .../class-use/ProcedureStateSerializer.html     |    34 +-
 .../class-use/ProcedureSuspendedException.html  |     5 +
 .../class-use/ProcedureYieldException.html      |     5 +
 .../class-use/StateMachineProcedure.Flow.html   |     9 +-
 .../class-use/StateMachineProcedure.html        |    10 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/quotas/QuotaTableUtil.html     |     2 +-
 .../hadoop/hbase/quotas/package-tree.html       |     6 +-
 .../DisableTableViolationPolicyEnforcement.html |    14 +-
 .../HRegion.BatchOperation.Visitor.html         |     4 +-
 .../regionserver/HRegion.BatchOperation.html    |    80 +-
 .../regionserver/HRegion.BulkLoadListener.html  |     8 +-
 .../HRegion.FlushResult.Result.html             |    10 +-
 .../hbase/regionserver/HRegion.FlushResult.html |     8 +-
 .../HRegion.MutationBatchOperation.html         |    44 +-
 .../regionserver/HRegion.RegionScannerImpl.html |    90 +-
 .../HRegion.ReplayBatchOperation.html           |    32 +-
 .../regionserver/HRegion.RowLockContext.html    |    28 +-
 .../hbase/regionserver/HRegion.RowLockImpl.html |    16 +-
 .../hadoop/hbase/regionserver/HRegion.html      |   540 +-
 .../regionserver/HStore.StoreFlusherImpl.html   |     1 +
 .../hbase/regionserver/StoreFlushContext.html   |     1 +
 .../hadoop/hbase/regionserver/package-tree.html |    16 +-
 .../querymatcher/ColumnTracker.html             |     4 +-
 .../querymatcher/ExplicitColumnTracker.html     |     4 +
 .../querymatcher/NewVersionBehaviorTracker.html |     4 +
 .../querymatcher/ScanWildcardColumnTracker.html |     4 +
 ...cationEndpoint.PeerRegionServerListener.html |    10 +-
 .../replication/HBaseReplicationEndpoint.html   |    49 +-
 .../replication/regionserver/package-tree.html  |     2 +-
 .../hadoop/hbase/rest/model/package-tree.html   |     2 +-
 ...upAdminEndpoint.RSGroupAdminServiceImpl.html |    16 +-
 .../hbase/rsgroup/RSGroupAdminEndpoint.html     |    22 +-
 .../security/access/AccessControlFilter.html    |     2 +-
 .../access/AccessController.OpType.html         |    30 +-
 .../hbase/security/access/AccessController.html |   710 +-
 .../security/access/SecureBulkLoadEndpoint.html |    22 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../hadoop/hbase/thrift/package-tree.html       |     4 +-
 .../hadoop/hbase/util/AbstractByteRange.html    |    81 +-
 .../hbase/util/AbstractPositionedByteRange.html |     8 +-
 .../apache/hadoop/hbase/util/JRubyFormat.html   |    20 +-
 .../apache/hadoop/hbase/util/OrderedBytes.html  |     2 +-
 .../hadoop/hbase/util/SimpleByteRange.html      |     2 +-
 .../hbase/util/SimpleMutableByteRange.html      |     2 +-
 .../hbase/util/SimplePositionedByteRange.html   |     6 +-
 .../util/SimplePositionedMutableByteRange.html  |     6 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    12 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 devapidocs/overview-tree.html                   |     3 +
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../hbase/backup/impl/RestoreTablesClient.html  |    10 +-
 .../hadoop/hbase/client/ClusterConnection.html  |     4 +-
 ...bleDescriptorUtils.TableDescriptorDelta.html |   171 +
 .../hbase/client/TableDescriptorUtils.html      |   171 +
 .../hbase/client/replication/TableCFs.html      |     2 +-
 .../favored/StartcodeAgnosticServerName.html    |     6 +-
 .../hfile/HFileBlockIndex.BlockIndexChunk.html  |     2 +-
 .../hfile/HFileBlockIndex.BlockIndexReader.html |     2 +-
 .../hfile/HFileBlockIndex.BlockIndexWriter.html |     2 +-
 ...BlockIndex.ByteArrayKeyBlockIndexReader.html |     2 +-
 ...BlockIndex.CellBasedKeyBlockIndexReader.html |     2 +-
 .../hadoop/hbase/io/hfile/HFileBlockIndex.html  |     2 +-
 .../RpcServer.BlockingServiceAndInterface.html  |     2 +-
 .../hadoop/hbase/ipc/RpcServer.CallCleanup.html |     2 +-
 .../org/apache/hadoop/hbase/ipc/RpcServer.html  |     2 +-
 .../procedure/ReopenTableRegionsProcedure.html  |   186 +
 .../master/replication/ModifyPeerProcedure.html |   274 +-
 .../org/apache/hadoop/hbase/net/Address.html    |     2 +-
 .../procedure2/StateMachineProcedure.Flow.html  |   353 +-
 .../hbase/procedure2/StateMachineProcedure.html |   353 +-
 .../QuotaTableUtil.NamespaceQuotasVisitor.html  |     2 +-
 .../quotas/QuotaTableUtil.QuotasVisitor.html    |     2 +-
 .../QuotaTableUtil.TableQuotasVisitor.html      |     2 +-
 .../QuotaTableUtil.UserQuotasVisitor.html       |     2 +-
 .../hadoop/hbase/quotas/QuotaTableUtil.html     |     2 +-
 .../DisableTableViolationPolicyEnforcement.html |   120 +-
 .../HRegion.BatchOperation.Visitor.html         | 15094 ++++----
 .../regionserver/HRegion.BatchOperation.html    | 15094 ++++----
 .../regionserver/HRegion.BulkLoadListener.html  | 15094 ++++----
 .../HRegion.FlushResult.Result.html             | 15094 ++++----
 .../hbase/regionserver/HRegion.FlushResult.html | 15094 ++++----
 .../regionserver/HRegion.FlushResultImpl.html   | 15094 ++++----
 .../HRegion.MutationBatchOperation.html         | 15094 ++++----
 .../HRegion.ObservedExceptionsInBatch.html      | 15094 ++++----
 .../HRegion.PrepareFlushResult.html             | 15094 ++++----
 .../regionserver/HRegion.RegionScannerImpl.html | 15094 ++++----
 .../HRegion.ReplayBatchOperation.html           | 15094 ++++----
 .../regionserver/HRegion.RowLockContext.html    | 15094 ++++----
 .../hbase/regionserver/HRegion.RowLockImpl.html | 15094 ++++----
 .../hbase/regionserver/HRegion.WriteState.html  | 15094 ++++----
 .../hadoop/hbase/regionserver/HRegion.html      | 15094 ++++----
 .../hbase/regionserver/StoreFlushContext.html   |     2 +-
 .../querymatcher/ColumnTracker.html             |     4 +-
 ...cationEndpoint.PeerRegionServerListener.html |   381 +-
 .../replication/HBaseReplicationEndpoint.html   |   381 +-
 ...upAdminEndpoint.RSGroupAdminServiceImpl.html |   643 +-
 .../hbase/rsgroup/RSGroupAdminEndpoint.html     |   643 +-
 .../access/AccessControlFilter.Strategy.html    |     2 +-
 .../security/access/AccessControlFilter.html    |     2 +-
 .../access/AccessController.OpType.html         |  4895 ++-
 .../hbase/security/access/AccessController.html |  4895 ++-
 .../security/access/SecureBulkLoadEndpoint.html |   177 +-
 .../hadoop/hbase/util/AbstractByteRange.html    |    44 +-
 .../apache/hadoop/hbase/util/JRubyFormat.html   |   236 +-
 .../apache/hadoop/hbase/util/OrderedBytes.html  |     2 +-
 downloads.html                                  |     4 +-
 export_control.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                          |     8 +-
 plugins.html                                    |    12 +-
 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 +-
 .../hadoop/hbase/HBaseTestingUtility.html       |    33 +-
 .../hadoop/hbase/HBaseTestingUtility.html       |    34 +-
 testdevapidocs/allclasses-frame.html            |     1 +
 testdevapidocs/allclasses-noframe.html          |     1 +
 testdevapidocs/index-all.html                   |    48 +-
 .../hadoop/hbase/HBaseTestingUtility.html       |    33 +-
 .../hadoop/hbase/IntegrationTestBase.html       |     6 +-
 ...IntegrationTestRegionReplicaReplication.html |     2 +-
 .../hadoop/hbase/MultithreadedTestUtil.html     |    20 +-
 ...stJMXConnectorServer.MyAccessController.html |     4 +-
 .../hbase/TestMetaTableAccessorNoCluster.html   |     2 +-
 .../hbase/TestPartialResultsFromClientSide.html |    25 +-
 .../apache/hadoop/hbase/Waiter.Predicate.html   |     2 +-
 .../org/apache/hadoop/hbase/Waiter.html         |     2 +-
 .../hadoop/hbase/backup/TestHFileArchiving.html |     5 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../hbase/class-use/HBaseClassTestRule.html     |   338 +-
 .../hbase/client/HConnectionTestingUtility.html |     7 +-
 .../client/TestTableDescriptorBuilder.html      |     4 +-
 .../hbase/client/TestTableDescriptorUtils.html  |   308 +
 .../hbase/client/TestTableFavoredNodes.html     |     4 +-
 .../class-use/TestTableDescriptorUtils.html     |   125 +
 .../hadoop/hbase/client/package-frame.html      |     1 +
 .../hadoop/hbase/client/package-summary.html    |    14 +-
 .../hadoop/hbase/client/package-tree.html       |     1 +
 .../apache/hadoop/hbase/filter/StringRange.html |    59 +-
 .../hbase/filter/TestColumnRangeFilter.html     |    24 +-
 .../hadoop/hbase/http/TestHttpServer.html       |     7 +-
 .../hadoop/hbase/io/hfile/KVGenerator.html      |     2 +-
 .../hadoop/hbase/io/hfile/package-summary.html  |     2 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     2 +-
 .../hadoop/hbase/io/hfile/package-use.html      |     2 +-
 .../hbase/mapred/TestTableInputFormat.html      |     4 +-
 .../hbase/mapreduce/TestImportExport.html       |     7 +-
 .../hbase/mapreduce/TestTableInputFormat.html   |     2 +
 .../hbase/master/TestRegionPlacement.html       |     8 +-
 .../apache/hadoop/hbase/package-summary.html    |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    10 +-
 .../org/apache/hadoop/hbase/package-use.html    |     4 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/quotas/TestSpaceQuotas.html    |   257 +-
 .../regionserver/TestCompoundBloomFilter.html   |     4 +-
 .../hadoop/hbase/regionserver/TestHRegion.html  |     1 +
 .../hadoop/hbase/regionserver/package-tree.html |     6 +-
 .../hbase/rsgroup/TestRSGroupsWithACL.html      |   201 +-
 ...estAccessController2.MyAccessController.html |     4 +-
 ...ccessController3.FaultyAccessController.html |     4 +-
 .../SecureTestUtil.AccessTestAction.html        |    22 -
 .../hbase/security/access/package-use.html      |     6 -
 .../hbase/snapshot/SnapshotTestingUtils.html    |     8 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     2 +-
 .../hbase/util/HFileArchiveTestingUtil.html     |     2 +-
 .../apache/hadoop/hbase/util/LoadTestTool.html  |     4 +-
 .../hadoop/hbase/util/TestRegionSplitter.html   |     4 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 testdevapidocs/overview-tree.html               |     1 +
 ...lity.PortAllocator.AvailablePortChecker.html |    34 +-
 .../HBaseTestingUtility.PortAllocator.html      |    34 +-
 .../HBaseTestingUtility.SeenRowTracker.html     |    34 +-
 .../hadoop/hbase/HBaseTestingUtility.html       |    34 +-
 .../hadoop/hbase/IntegrationTestBase.html       |     6 +-
 ...eplication.DelayingMultiThreadedUpdater.html |     2 +-
 ...Replication.DelayingMultiThreadedWriter.html |     2 +-
 ...IntegrationTestRegionReplicaReplication.html |     2 +-
 ...ltithreadedTestUtil.RepeatingTestThread.html |    47 +-
 .../MultithreadedTestUtil.TestContext.html      |    47 +-
 .../hbase/MultithreadedTestUtil.TestThread.html |    47 +-
 .../hadoop/hbase/MultithreadedTestUtil.html     |    47 +-
 .../hbase/TestMetaTableAccessorNoCluster.html   |     2 +-
 .../hbase/TestPartialResultsFromClientSide.html |    28 +-
 .../hbase/Waiter.ExplainingPredicate.html       |     2 +-
 .../apache/hadoop/hbase/Waiter.Predicate.html   |     2 +-
 .../org/apache/hadoop/hbase/Waiter.html         |     2 +-
 .../hadoop/hbase/backup/TestHFileArchiving.html |     6 +-
 ...ctionTestingUtility.SleepAtFirstRpcCall.html |     4 +-
 .../hbase/client/HConnectionTestingUtility.html |     4 +-
 .../hbase/client/TestTableDescriptorUtils.html  |   158 +
 .../apache/hadoop/hbase/filter/StringRange.html |   480 +-
 .../hbase/filter/TestColumnRangeFilter.html     |   480 +-
 .../TestHttpServer.DummyFilterInitializer.html  |     8 +-
 .../http/TestHttpServer.DummyServletFilter.html |     8 +-
 .../http/TestHttpServer.EchoMapServlet.html     |     8 +-
 .../hbase/http/TestHttpServer.EchoServlet.html  |     8 +-
 .../http/TestHttpServer.HtmlContentServlet.html |     8 +-
 .../http/TestHttpServer.LongHeaderServlet.html  |     8 +-
 .../http/TestHttpServer.MyGroupsProvider.html   |     8 +-
 .../hadoop/hbase/http/TestHttpServer.html       |     8 +-
 .../hadoop/hbase/io/hfile/KVGenerator.html      |     2 +-
 ...stTableInputFormat.ExampleDeprecatedTIF.html |     6 +-
 ...leInputFormat.ExampleJobConfigurableTIF.html |     6 +-
 .../mapred/TestTableInputFormat.ExampleTIF.html |     6 +-
 .../TestTableInputFormat.ExampleVerifier.html   |     6 +-
 .../hbase/mapred/TestTableInputFormat.html      |     6 +-
 ...TestImportExport.TableWALActionListener.html |     6 +-
 .../hbase/mapreduce/TestImportExport.html       |     6 +-
 ...stTableInputFormat.ExampleDeprecatedTIF.html |     4 +-
 ...leInputFormat.ExampleJobConfigurableTIF.html |     4 +-
 .../TestTableInputFormat.ExampleTIF.html        |     4 +-
 .../TestTableInputFormat.ExampleVerifier.html   |     4 +-
 .../hbase/mapreduce/TestTableInputFormat.html   |     4 +-
 .../hbase/master/TestRegionPlacement.html       |    51 +-
 .../hadoop/hbase/quotas/TestSpaceQuotas.html    |  1082 +-
 .../regionserver/TestCompoundBloomFilter.html   |     2 +-
 .../regionserver/TestHRegion.Appender.html      |     2 +-
 .../regionserver/TestHRegion.FlushThread.html   |     2 +-
 .../TestHRegion.GetTillDoneOrException.html     |     2 +-
 .../TestHRegion.HRegionForTesting.html          |     2 +-
 .../TestHRegion.HRegionWithSeqId.html           |     2 +-
 .../TestHRegion.HStoreForTesting.html           |     2 +-
 .../regionserver/TestHRegion.Incrementer.html   |     2 +-
 .../TestHRegion.IsFlushWALMarker.html           |     2 +-
 .../regionserver/TestHRegion.PutThread.html     |     2 +-
 .../hadoop/hbase/regionserver/TestHRegion.html  |     2 +-
 .../hbase/rsgroup/TestRSGroupsWithACL.html      |   600 +-
 ...hotTestingUtils.SnapshotMock.RegionData.html |     8 +-
 ...stingUtils.SnapshotMock.SnapshotBuilder.html |     8 +-
 .../SnapshotTestingUtils.SnapshotMock.html      |     8 +-
 .../hbase/snapshot/SnapshotTestingUtils.html    |     8 +-
 .../hbase/util/HFileArchiveTestingUtil.html     |     2 +-
 .../hbase/util/LoadTestTool.WorkerThread.html   |     4 +-
 .../apache/hadoop/hbase/util/LoadTestTool.html  |     4 +-
 .../hadoop/hbase/util/TestRegionSplitter.html   |     2 +-
 360 files changed, 148563 insertions(+), 141227 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 269f343..bed5ff0 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -601,7 +601,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 


[17/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="line.1364"></a>
+<span class="s

<TRUNCATED>

[46/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index f56cc1a..979878b 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -1368,7 +1368,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/expression/NonLeafExpressionNode.html#addChildExps-java.util.List-">addChildExps(List&lt;ExpressionNode&gt;)</a></span> - Method in class org.apache.hadoop.hbase.security.visibility.expression.<a href="org/apache/hadoop/hbase/security/visibility/expression/NonLeafExpressionNode.html" title="class in org.apache.hadoop.hbase.security.visibility.expression">NonLeafExpressionNode</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure(Procedure&lt;TEnvironment&gt;...)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure(T...)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></dt>
 <dd>
 <div class="block">Add a child procedure to execute</div>
 </dd>
@@ -9826,7 +9826,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcServer.html#channelIO-java.nio.channels.ReadableByteChannel-java.nio.channels.WritableByteChannel-java.nio.ByteBuffer-">channelIO(ReadableByteChannel, WritableByteChannel, ByteBuffer)</a></span> - Static method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></dt>
 <dd>
-<div class="block">Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer).</div>
+<div class="block">Helper for <a href="org/apache/hadoop/hbase/ipc/RpcServer.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-"><code>RpcServer.channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)</code></a>.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#channelLocks">channelLocks</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">FileIOEngine</a></dt>
 <dd>&nbsp;</dd>
@@ -13761,6 +13761,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.html#COLUMNS_CONF_KEY">COLUMNS_CONF_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.html" title="class in org.apache.hadoop.hbase.mapreduce">ImportTsv</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#columnsAdded">columnsAdded</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/rest/model/ColumnSchemaModel.html" title="class in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ColumnSchemaModel</span></a> - Class in <a href="org/apache/hadoop/hbase/rest/model/package-summary.html">org.apache.hadoop.hbase.rest.model</a></dt>
 <dd>
 <div class="block">Representation of a column family schema.</div>
@@ -13769,6 +13771,10 @@
 <dd>
 <div class="block">Default constructor</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#columnsDeleted">columnsDeleted</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#columnsModified">columnsModified</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ColumnTracker</span></a> - Interface in <a href="org/apache/hadoop/hbase/regionserver/querymatcher/package-summary.html">org.apache.hadoop.hbase.regionserver.querymatcher</a></dt>
 <dd>
 <div class="block">Implementing classes of this interface will be used for the tracking
@@ -15844,6 +15850,11 @@
 <dd>
 <div class="block">This is the main cost function.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html#computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">computeDelta(TableDescriptor, TableDescriptor)</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils</a></dt>
+<dd>
+<div class="block">Compares two <a href="org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#computeFilename-long-">computeFilename(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
 <dd>
 <div class="block">This is a convenience method that computes a new filename with a given file-number.</div>
@@ -17392,7 +17403,8 @@
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#convert-org.apache.hadoop.hbase.protobuf.generated.ClientProtos.PrepareBulkLoadRequest-">convert(ClientProtos.PrepareBulkLoadRequest)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html" title="class in org.apache.hadoop.hbase.security.access">SecureBulkLoadEndpoint</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
-&nbsp;</dd>
+<div class="block">Convert from CPEP protobuf 2.5 to internal protobuf 3.3.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#convert-org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CleanupBulkLoadRequest-">convert(ClientProtos.CleanupBulkLoadRequest)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html" title="class in org.apache.hadoop.hbase.security.access">SecureBulkLoadEndpoint</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
@@ -17401,7 +17413,8 @@
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#convert-org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest-">convert(ClientProtos.BulkLoadHFileRequest)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html" title="class in org.apache.hadoop.hbase.security.access">SecureBulkLoadEndpoint</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
-&nbsp;</dd>
+<div class="block">Convert from CPEP protobuf 2.5 to internal protobuf 3.3.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKUtil.html#convert-org.apache.hadoop.hbase.exceptions.DeserializationException-">convert(DeserializationException)</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>
 <dd>
 <div class="block">Convert a <a href="org/apache/hadoop/hbase/exceptions/DeserializationException.html" title="class in org.apache.hadoop.hbase.exceptions"><code>DeserializationException</code></a> to a more palatable <code>KeeperException</code>.</div>
@@ -25096,6 +25109,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
@@ -28121,6 +28136,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/types/CopyOnWriteArrayMap.ArrayValueCollection.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.hadoop.hbase.types.<a href="org/apache/hadoop/hbase/types/CopyOnWriteArrayMap.ArrayValueCollection.html" title="class in org.apache.hadoop.hbase.types">CopyOnWriteArrayMap.ArrayValueCollection</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/AbstractByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractByteRange</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ByteBufferUtils.html#equals-java.nio.ByteBuffer-int-int-java.nio.ByteBuffer-int-int-">equals(ByteBuffer, int, int, ByteBuffer, int, int)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteBufferUtils.html" title="class in org.apache.hadoop.hbase.util">ByteBufferUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ByteBufferUtils.html#equals-java.nio.ByteBuffer-int-int-byte:A-int-int-">equals(ByteBuffer, int, int, byte[], int, int)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteBufferUtils.html" title="class in org.apache.hadoop.hbase.util">ByteBufferUtils</a></dt>
@@ -29000,6 +29017,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RecoverMetaState-">executeFromState(MasterProcedureEnv, MasterProcedureProtos.RecoverMetaState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">executeFromState(MasterProcedureEnv, MasterProcedureProtos.ReopenTableRegionsState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState-">executeFromState(MasterProcedureEnv, MasterProcedureProtos.RestoreSnapshotState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">executeFromState(MasterProcedureEnv, MasterProcedureProtos.ServerCrashState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
@@ -36096,6 +36115,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/RowSpec.html#getColumns--">getColumns()</a></span> - Method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/RowSpec.html" title="class in org.apache.hadoop.hbase.rest">RowSpec</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#getColumnsAdded--">getColumnsAdded()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#getColumnsDeleted--">getColumnsDeleted()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#getColumnsModified--">getColumnsModified()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupCommands.BackupSetCommand.html#getCommand-java.lang.String-">getCommand(String)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupCommands.BackupSetCommand.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupCommands.BackupSetCommand</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#getCommittedFiles--">getCommittedFiles()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HStore.StoreFlusherImpl</a></dt>
@@ -39864,6 +39889,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#getInitialState--">getInitialState()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getInitialState--">getInitialState()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#getInitialState--">getInitialState()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#getInitialState--">getInitialState()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
@@ -49586,6 +49613,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#getState-int-">getState(int)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getState-int-">getState(int)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#getState-int-">getState(int)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#getState-int-">getState(int)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
@@ -49656,6 +49685,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#getStateId-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RecoverMetaState-">getStateId(MasterProcedureProtos.RecoverMetaState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getStateId-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">getStateId(MasterProcedureProtos.ReopenTableRegionsState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#getStateId-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState-">getStateId(MasterProcedureProtos.RestoreSnapshotState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#getStateId-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">getStateId(MasterProcedureProtos.ServerCrashState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
@@ -50805,6 +50836,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#getTableName--">getTableName()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getTableName--">getTableName()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#getTableName--">getTableName()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableName--">getTableName()</a></span> - Method in interface org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></dt>
@@ -50955,6 +50988,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#getTableOperationType--">getTableOperationType()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getTableOperationType--">getTableOperationType()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#getTableOperationType--">getTableOperationType()</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">getTableOperationType()</a></span> - Method in interface org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></dt>
@@ -67584,6 +67619,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher</a></dt>
@@ -81844,8 +81881,6 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAddRSGroup-java.lang.String-">preAddRSGroup(String)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ScanInfo.html#preadMaxBytes">preadMaxBytes</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/StoreScanner.html#preadMaxBytes">preadMaxBytes</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></dt>
@@ -81902,8 +81937,6 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preBalanceRSGroup-java.lang.String-">preBalanceRSGroup(String)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, boolean)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
 <dd>
 <div class="block">Called prior to modifying the flag used to enable/disable region balancing.</div>
@@ -82758,24 +82791,18 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMoveServers-java.util.Set-java.lang.String-">preMoveServers(Set&lt;Address&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;Address&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;Address&gt;, Set&lt;TableName&gt;, String)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
 <dd>
 <div class="block">Called before servers are moved to target region server group</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMoveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables(Set&lt;Address&gt;, Set&lt;TableName&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;Address&gt;, Set&lt;TableName&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;TableName&gt;, String)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
 <dd>
 <div class="block">Called before tables are moved to target region server group</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMoveTables-java.util.Set-java.lang.String-">preMoveTables(Set&lt;TableName&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;TableName&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preOpen(ObserverContext&lt;RegionCoprocessorEnvironment&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/RegionObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionObserver</a></dt>
 <dd>
 <div class="block">Called before the region is reported as open to the master.</div>
@@ -83140,16 +83167,12 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRemoveRSGroup-java.lang.String-">preRemoveRSGroup(String)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;Address&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
 <dd>
 <div class="block">Called before servers are removed from rsgroup</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRemoveServers-java.util.Set-">preRemoveServers(Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preReplayWALs-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.fs.Path-">preReplayWALs(ObserverContext&lt;? extends RegionCoprocessorEnvironment&gt;, RegionInfo, Path)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/RegionObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionObserver</a></dt>
 <dd>
 <div class="block">Called before replaying WALs for this region.</div>
@@ -90984,6 +91007,14 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#reopenRegions-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">reopenRegions(MasterProcedureEnv)</a></span> - Method in class org.apache.hadoop.hbase.master.replication.<a href="org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html" title="class in org.apache.hadoop.hbase.master.replication">ModifyPeerProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ReopenTableRegionsProcedure</span></a> - Class in <a href="org/apache/hadoop/hbase/master/procedure/package-summary.html">org.apache.hadoop.hbase.master.procedure</a></dt>
+<dd>
+<div class="block">Used for non table procedures to reopen the regions for a table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#ReopenTableRegionsProcedure--">ReopenTableRegionsProcedure()</a></span> - Constructor for class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#ReopenTableRegionsProcedure-org.apache.hadoop.hbase.TableName-">ReopenTableRegionsProcedure(TableName)</a></span> - Constructor for class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/fs/HFileSystem.ReorderBlocks.html#reorderBlocks-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hdfs.protocol.LocatedBlocks-java.lang.String-">reorderBlocks(Configuration, LocatedBlocks, String)</a></span> - Method in interface org.apache.hadoop.hbase.fs.<a href="org/apache/hadoop/hbase/fs/HFileSystem.ReorderBlocks.html" title="interface in org.apache.hadoop.hbase.fs">HFileSystem.ReorderBlocks</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/fs/HFileSystem.ReorderWALBlocks.html#reorderBlocks-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hdfs.protocol.LocatedBlocks-java.lang.String-">reorderBlocks(Configuration, LocatedBlocks, String)</a></span> - Method in class org.apache.hadoop.hbase.fs.<a href="org/apache/hadoop/hbase/fs/HFileSystem.ReorderWALBlocks.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem.ReorderWALBlocks</a></dt>
@@ -93925,6 +93956,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RecoverMetaState-">rollbackState(MasterProcedureEnv, MasterProcedureProtos.RecoverMetaState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">rollbackState(MasterProcedureEnv, MasterProcedureProtos.ReopenTableRegionsState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState-">rollbackState(MasterProcedureEnv, MasterProcedureProtos.RestoreSnapshotState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">rollbackState(MasterProcedureEnv, MasterProcedureProtos.ServerCrashState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
@@ -97617,6 +97650,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
@@ -109612,6 +109647,8 @@ service.</div>
 <dd>
 <div class="block">TODO: make this private after removing the HTableDescriptor</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#TableDescriptorDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">TableDescriptorDelta(TableDescriptor, TableDescriptor)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescriptors">tableDescriptors</a></span> - 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>
 <div class="block">Go here to get table descriptors.</div>
@@ -109626,6 +109663,12 @@ service.</div>
 <dd>
 <div class="block">Get, remove and modify table descriptors.</div>
 </dd>
+<dt><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html#TableDescriptorUtils--">TableDescriptorUtils()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils.TableDescriptorDelta</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.TableInfo.html#tableDesctiptor">tableDesctiptor</a></span> - Variable in 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/regionserver/wal/CompressionContext.html#tableDict">tableDict</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/CompressionContext.html" title="class in org.apache.hadoop.hbase.regionserver.wal">CompressionContext</a></dt>
@@ -109936,6 +109979,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">EnableTableProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.master.snapshot.<a href="org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.html" title="class in org.apache.hadoop.hbase.master.snapshot">MasterSnapshotVerifier</a></dt>
@@ -122014,8 +122059,6 @@ the order they are declared.</div>
 <dd>
 <div class="block">Instantiate a ZooKeeper connection and watcher.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html#zkwLock">zkwLock</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.replication">HBaseReplicationEndpoint</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/zksyncer/ClientZKSyncer.ClientZkUpdater.html#znode">znode</a></span> - Variable in class org.apache.hadoop.hbase.master.zksyncer.<a href="org/apache/hadoop/hbase/master/zksyncer/ClientZKSyncer.ClientZkUpdater.html" title="class in org.apache.hadoop.hbase.master.zksyncer">ClientZKSyncer.ClientZkUpdater</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/Canary.ZookeeperMonitor.html#znode">znode</a></span> - Variable in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/Canary.ZookeeperMonitor.html" title="class in org.apache.hadoop.hbase.tool">Canary.ZookeeperMonitor</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
index fc599d9..2ed2a72 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.html
@@ -371,7 +371,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Validate target tables.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>tTableArray:</code> - target tables</dd>
+<dd><code>tTableArray</code> - target tables</dd>
 <dd><code>isOverwrite</code> - overwrite existing table</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - exception</dd>
@@ -392,10 +392,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Restore operation handle each backupImage in array.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>images:</code> - array BackupImage</dd>
-<dd><code>sTable:</code> - table to be restored</dd>
-<dd><code>tTable:</code> - table to be restored to</dd>
-<dd><code>truncateIfExists:</code> - truncate table</dd>
+<dd><code>images</code> - array BackupImage</dd>
+<dd><code>sTable</code> - table to be restored</dd>
+<dd><code>tTable</code> - table to be restored to</dd>
+<dd><code>truncateIfExists</code> - truncate table</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - exception</dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 f2790ae..4823f42 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -168,9 +168,9 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 9325709..80fc929 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
@@ -7227,6 +7227,10 @@ service.</div>
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
 <td class="colLast"><span class="typeNameLabel">DisableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html#tableName">tableName</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#tableName">tableName</a></span></code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
@@ -7306,6 +7310,10 @@ service.</div>
 <td class="colLast"><span class="typeNameLabel">ModifyTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MasterProcedureScheduler.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#getTableName-org.apache.hadoop.hbase.procedure2.Procedure-">getTableName</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;proc)</code>&nbsp;</td>
 </tr>
@@ -7540,17 +7548,20 @@ service.</div>
 </td>
 </tr>
 <tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#ReopenTableRegionsProcedure-org.apache.hadoop.hbase.TableName-">ReopenTableRegionsProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/TableQueue.html#TableQueue-org.apache.hadoop.hbase.TableName-int-org.apache.hadoop.hbase.procedure2.LockStatus-org.apache.hadoop.hbase.procedure2.LockStatus-">TableQueue</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
           int&nbsp;priority,
           <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a>&nbsp;tableLock,
           <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockStatus.html" title="interface in org.apache.hadoop.hbase.procedure2">LockStatus</a>&nbsp;namespaceLockStatus)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#TruncateTableProcedure-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.TableName-boolean-">TruncateTableProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                       boolean&nbsp;preserveSplits)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#TruncateTableProcedure-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.TableName-boolean-org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch-">TruncateTableProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                       boolean&nbsp;preserveSplits,
@@ -10484,19 +10495,6 @@ service.</div>
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;descriptors,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/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;tables,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/ClusterConnection.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ClusterConnection.html b/devapidocs/org/apache/hadoop/hbase/client/ClusterConnection.html
index 0c0abb0..c906d20 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ClusterConnection.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ClusterConnection.html
@@ -815,7 +815,7 @@ boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Clu
 <div class="block">Establishes a connection to the region server at the specified address.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>serverName</code> - </dd>
+<dd><code>serverName</code> - the region server to connect to</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>proxy for HRegionServer</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -835,7 +835,7 @@ boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Clu
  a region client protocol.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>serverName</code> - </dd>
+<dd><code>serverName</code> - the region server to connect to</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>ClientProtocol proxy for RegionServer</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html
index 9889c69..c7fa5e6 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionImplementation.html
@@ -2079,6 +2079,8 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html#getAdmin-org.apache.hadoop.hbase.ServerName-">getAdmin</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverName</code> - the region server to connect to</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>proxy for HRegionServer</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2100,6 +2102,8 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html#getClient-org.apache.hadoop.hbase.ServerName-">getClient</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serverName</code> - the region server to connect to</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>ClientProtocol proxy for RegionServer</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.ShortCircuitingClusterConnection.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.ShortCircuitingClusterConnection.html b/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.ShortCircuitingClusterConnection.html
index 19b06ec..5d73cca 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.ShortCircuitingClusterConnection.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ConnectionUtils.ShortCircuitingClusterConnection.html
@@ -357,6 +357,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html#getAdmin-org.apache.hadoop.hbase.ServerName-">getAdmin</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a></code></dd>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getAdmin-org.apache.hadoop.hbase.ServerName-">getAdmin</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sn</code> - the region server to connect to</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>proxy for HRegionServer</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -380,6 +382,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImpleme
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html#getClient-org.apache.hadoop.hbase.ServerName-">getClient</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a></code></dd>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getClient-org.apache.hadoop.hbase.ServerName-">getClient</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">ConnectionImplementation</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sn</code> - the region server to connect to</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>ClientProtocol proxy for RegionServer</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html b/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html
index 3c17832..1c62493 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" target="_top">Frames</a></li>
@@ -1866,7 +1866,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" target="_top">Frames</a></li>


[20/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="l

<TRUNCATED>

[28/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="line.1364"></a>


<TRUNCATED>

[13/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
index 168462e..67da347 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
@@ -213,330 +213,337 @@
 <span class="sourceLineNo">205</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.205"></a>
 <span class="sourceLineNo">206</span>          master.getMasterCoprocessorHost().preMoveServers(hostPorts, request.getTargetGroup());<a name="line.206"></a>
 <span class="sourceLineNo">207</span>        }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        groupAdminServer.moveServers(hostPorts, request.getTargetGroup());<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>          master.getMasterCoprocessorHost().postMoveServers(hostPorts, request.getTargetGroup());<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      } catch (IOException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      done.run(builder.build());<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    public void moveTables(RpcController controller, MoveTablesRequest request,<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        RpcCallback&lt;MoveTablesResponse&gt; done) {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      MoveTablesResponse.Builder builder = MoveTablesResponse.newBuilder();<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        tables.add(ProtobufUtil.toTableName(tableName));<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      LOG.info(master.getClientIdAuditPrefix() + " move tables " + tables +" to rsgroup "<a name="line.226"></a>
-<span class="sourceLineNo">227</span>          + request.getTargetGroup());<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      try {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          master.getMasterCoprocessorHost().preMoveTables(tables, request.getTargetGroup());<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        groupAdminServer.moveTables(tables, request.getTargetGroup());<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>          master.getMasterCoprocessorHost().postMoveTables(tables, request.getTargetGroup());<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        }<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      } catch (IOException e) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      done.run(builder.build());<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>    @Override<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    public void addRSGroup(RpcController controller, AddRSGroupRequest request,<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        RpcCallback&lt;AddRSGroupResponse&gt; done) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      AddRSGroupResponse.Builder builder = AddRSGroupResponse.newBuilder();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      LOG.info(master.getClientIdAuditPrefix() + " add rsgroup " + request.getRSGroupName());<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      try {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>          master.getMasterCoprocessorHost().preAddRSGroup(request.getRSGroupName());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        groupAdminServer.addRSGroup(request.getRSGroupName());<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          master.getMasterCoprocessorHost().postAddRSGroup(request.getRSGroupName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        }<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      } catch (IOException e) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      done.run(builder.build());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    @Override<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    public void removeRSGroup(RpcController controller,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>        RemoveRSGroupRequest request, RpcCallback&lt;RemoveRSGroupResponse&gt; done) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RemoveRSGroupResponse.Builder builder =<a name="line.264"></a>
-<span class="sourceLineNo">265</span>          RemoveRSGroupResponse.newBuilder();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      LOG.info(master.getClientIdAuditPrefix() + " remove rsgroup " + request.getRSGroupName());<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      try {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          master.getMasterCoprocessorHost().preRemoveRSGroup(request.getRSGroupName());<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        groupAdminServer.removeRSGroup(request.getRSGroupName());<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>          master.getMasterCoprocessorHost().postRemoveRSGroup(request.getRSGroupName());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      } catch (IOException e) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      done.run(builder.build());<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>    @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    public void balanceRSGroup(RpcController controller,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        BalanceRSGroupRequest request, RpcCallback&lt;BalanceRSGroupResponse&gt; done) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      BalanceRSGroupResponse.Builder builder = BalanceRSGroupResponse.newBuilder();<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      LOG.info(master.getClientIdAuditPrefix() + " balance rsgroup, group=" +<a name="line.285"></a>
-<span class="sourceLineNo">286</span>              request.getRSGroupName());<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      try {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>          master.getMasterCoprocessorHost().preBalanceRSGroup(request.getRSGroupName());<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        boolean balancerRan = groupAdminServer.balanceRSGroup(request.getRSGroupName());<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        builder.setBalanceRan(balancerRan);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          master.getMasterCoprocessorHost().postBalanceRSGroup(request.getRSGroupName(),<a name="line.294"></a>
-<span class="sourceLineNo">295</span>              balancerRan);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        }<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      } catch (IOException e) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        builder.setBalanceRan(false);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      done.run(builder.build());<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>    @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    public void listRSGroupInfos(RpcController controller,<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        ListRSGroupInfosRequest request, RpcCallback&lt;ListRSGroupInfosResponse&gt; done) {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      ListRSGroupInfosResponse.Builder builder = ListRSGroupInfosResponse.newBuilder();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      LOG.info(master.getClientIdAuditPrefix() + " list rsgroup");<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      try {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        checkPermission("listRSGroup");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        for (RSGroupInfo RSGroupInfo : groupAdminServer.listRSGroups()) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>          builder.addRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      } catch (IOException e) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      done.run(builder.build());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    @Override<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    public void getRSGroupInfoOfServer(RpcController controller,<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        GetRSGroupInfoOfServerRequest request, RpcCallback&lt;GetRSGroupInfoOfServerResponse&gt; done) {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      GetRSGroupInfoOfServerResponse.Builder builder = GetRSGroupInfoOfServerResponse.newBuilder();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      Address hp = Address.fromParts(request.getServer().getHostName(),<a name="line.324"></a>
-<span class="sourceLineNo">325</span>          request.getServer().getPort());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, server="<a name="line.326"></a>
-<span class="sourceLineNo">327</span>          + hp);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      try {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        checkPermission("getRSGroupInfoOfServer");<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        RSGroupInfo info = groupAdminServer.getRSGroupOfServer(hp);<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        if (info != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(info));<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      } catch (IOException e) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      done.run(builder.build());<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    @Override<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    public void moveServersAndTables(RpcController controller,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>        MoveServersAndTablesRequest request, RpcCallback&lt;MoveServersAndTablesResponse&gt; done) {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        tables.add(ProtobufUtil.toTableName(tableName));<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts<a name="line.352"></a>
-<span class="sourceLineNo">353</span>          + " and tables " + tables + " to rsgroup" + request.getTargetGroup());<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      try {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          master.getMasterCoprocessorHost().preMoveServersAndTables(hostPorts, tables,<a name="line.356"></a>
-<span class="sourceLineNo">357</span>              request.getTargetGroup());<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        groupAdminServer.moveServersAndTables(hostPorts, tables, request.getTargetGroup());<a name="line.359"></a>
+<span class="sourceLineNo">208</span>        checkPermission("moveServers");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        groupAdminServer.moveServers(hostPorts, request.getTargetGroup());<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>          master.getMasterCoprocessorHost().postMoveServers(hostPorts, request.getTargetGroup());<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      } catch (IOException e) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      done.run(builder.build());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    @Override<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    public void moveTables(RpcController controller, MoveTablesRequest request,<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        RpcCallback&lt;MoveTablesResponse&gt; done) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      MoveTablesResponse.Builder builder = MoveTablesResponse.newBuilder();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        tables.add(ProtobufUtil.toTableName(tableName));<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      LOG.info(master.getClientIdAuditPrefix() + " move tables " + tables +" to rsgroup "<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          + request.getTargetGroup());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      try {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>          master.getMasterCoprocessorHost().preMoveTables(tables, request.getTargetGroup());<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        checkPermission("moveTables");<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        groupAdminServer.moveTables(tables, request.getTargetGroup());<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>          master.getMasterCoprocessorHost().postMoveTables(tables, request.getTargetGroup());<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      } catch (IOException e) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      done.run(builder.build());<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>    @Override<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    public void addRSGroup(RpcController controller, AddRSGroupRequest request,<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        RpcCallback&lt;AddRSGroupResponse&gt; done) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      AddRSGroupResponse.Builder builder = AddRSGroupResponse.newBuilder();<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      LOG.info(master.getClientIdAuditPrefix() + " add rsgroup " + request.getRSGroupName());<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      try {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          master.getMasterCoprocessorHost().preAddRSGroup(request.getRSGroupName());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        checkPermission("addRSGroup");<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        groupAdminServer.addRSGroup(request.getRSGroupName());<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          master.getMasterCoprocessorHost().postAddRSGroup(request.getRSGroupName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      } catch (IOException e) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      done.run(builder.build());<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    @Override<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    public void removeRSGroup(RpcController controller,<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        RemoveRSGroupRequest request, RpcCallback&lt;RemoveRSGroupResponse&gt; done) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      RemoveRSGroupResponse.Builder builder =<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          RemoveRSGroupResponse.newBuilder();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      LOG.info(master.getClientIdAuditPrefix() + " remove rsgroup " + request.getRSGroupName());<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          master.getMasterCoprocessorHost().preRemoveRSGroup(request.getRSGroupName());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        checkPermission("removeRSGroup");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        groupAdminServer.removeRSGroup(request.getRSGroupName());<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          master.getMasterCoprocessorHost().postRemoveRSGroup(request.getRSGroupName());<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      } catch (IOException e) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      done.run(builder.build());<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    public void balanceRSGroup(RpcController controller,<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        BalanceRSGroupRequest request, RpcCallback&lt;BalanceRSGroupResponse&gt; done) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      BalanceRSGroupResponse.Builder builder = BalanceRSGroupResponse.newBuilder();<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      LOG.info(master.getClientIdAuditPrefix() + " balance rsgroup, group=" +<a name="line.289"></a>
+<span class="sourceLineNo">290</span>              request.getRSGroupName());<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      try {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>          master.getMasterCoprocessorHost().preBalanceRSGroup(request.getRSGroupName());<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        checkPermission("balanceRSGroup");<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        boolean balancerRan = groupAdminServer.balanceRSGroup(request.getRSGroupName());<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        builder.setBalanceRan(balancerRan);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>          master.getMasterCoprocessorHost().postBalanceRSGroup(request.getRSGroupName(),<a name="line.299"></a>
+<span class="sourceLineNo">300</span>              balancerRan);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      } catch (IOException e) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        builder.setBalanceRan(false);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      done.run(builder.build());<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    @Override<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    public void listRSGroupInfos(RpcController controller,<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        ListRSGroupInfosRequest request, RpcCallback&lt;ListRSGroupInfosResponse&gt; done) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      ListRSGroupInfosResponse.Builder builder = ListRSGroupInfosResponse.newBuilder();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      LOG.info(master.getClientIdAuditPrefix() + " list rsgroup");<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      try {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        checkPermission("listRSGroup");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        for (RSGroupInfo RSGroupInfo : groupAdminServer.listRSGroups()) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          builder.addRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      } catch (IOException e) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      done.run(builder.build());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>    @Override<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    public void getRSGroupInfoOfServer(RpcController controller,<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        GetRSGroupInfoOfServerRequest request, RpcCallback&lt;GetRSGroupInfoOfServerResponse&gt; done) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      GetRSGroupInfoOfServerResponse.Builder builder = GetRSGroupInfoOfServerResponse.newBuilder();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      Address hp = Address.fromParts(request.getServer().getHostName(),<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          request.getServer().getPort());<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, server="<a name="line.331"></a>
+<span class="sourceLineNo">332</span>          + hp);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      try {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        checkPermission("getRSGroupInfoOfServer");<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        RSGroupInfo info = groupAdminServer.getRSGroupOfServer(hp);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        if (info != null) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(info));<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      } catch (IOException e) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      done.run(builder.build());<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    public void moveServersAndTables(RpcController controller,<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        MoveServersAndTablesRequest request, RpcCallback&lt;MoveServersAndTablesResponse&gt; done) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        tables.add(ProtobufUtil.toTableName(tableName));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts<a name="line.357"></a>
+<span class="sourceLineNo">358</span>          + " and tables " + tables + " to rsgroup" + request.getTargetGroup());<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      try {<a name="line.359"></a>
 <span class="sourceLineNo">360</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>          master.getMasterCoprocessorHost().postMoveServersAndTables(hostPorts, tables,<a name="line.361"></a>
+<span class="sourceLineNo">361</span>          master.getMasterCoprocessorHost().preMoveServersAndTables(hostPorts, tables,<a name="line.361"></a>
 <span class="sourceLineNo">362</span>              request.getTargetGroup());<a name="line.362"></a>
 <span class="sourceLineNo">363</span>        }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      } catch (IOException e) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      done.run(builder.build());<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    @Override<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    public void removeServers(RpcController controller,<a name="line.371"></a>
-<span class="sourceLineNo">372</span>        RemoveServersRequest request,<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        RpcCallback&lt;RemoveServersResponse&gt; done) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      RemoveServersResponse.Builder builder =<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          RemoveServersResponse.newBuilder();<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      Set&lt;Address&gt; servers = Sets.newHashSet();<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        servers.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      LOG.info(master.getClientIdAuditPrefix()<a name="line.380"></a>
-<span class="sourceLineNo">381</span>          + " remove decommissioned servers from rsgroup: " + servers);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      try {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          master.getMasterCoprocessorHost().preRemoveServers(servers);<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        groupAdminServer.removeServers(servers);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>          master.getMasterCoprocessorHost().postRemoveServers(servers);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      } catch (IOException e) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      done.run(builder.build());<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  boolean rsgroupHasServersOnline(TableDescriptor desc) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    String groupName;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    try {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      groupName =<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      if (groupName == null) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    } catch (MasterNotRunningException | PleaseHoldException e) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      LOG.info("Master has not initialized yet; temporarily using default RSGroup '" +<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          RSGroupInfo.DEFAULT_GROUP + "' for deploy of system table");<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (rsGroupInfo == null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      throw new ConstraintException(<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          "Default RSGroup (" + groupName + ") for this table's " + "namespace does not exist.");<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    for (ServerName onlineServer : master.getServerManager().createDestinationServersList()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      if (rsGroupInfo.getServers().contains(onlineServer.getAddress())) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        return true;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      }<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    return false;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  void assignTableToGroup(TableDescriptor desc) throws IOException {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    String groupName =<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.428"></a>
-<span class="sourceLineNo">429</span>                .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    if (groupName == null) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (rsGroupInfo == null) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      throw new ConstraintException("Default RSGroup (" + groupName + ") for this table's "<a name="line.435"></a>
-<span class="sourceLineNo">436</span>          + "namespace does not exist.");<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    }<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    if (!rsGroupInfo.containsTable(desc.getTableName())) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      LOG.debug("Pre-moving table " + desc.getTableName() + " to RSGroup " + groupName);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      groupAdminServer.moveTables(Sets.newHashSet(desc.getTableName()), groupName);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
-<span class="sourceLineNo">443</span><a name="line.443"></a>
-<span class="sourceLineNo">444</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.444"></a>
-<span class="sourceLineNo">445</span>  // MasterObserver overrides<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>  @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  public void preCreateTableAction(<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      final TableDescriptor desc,<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      final RegionInfo[] regions) throws IOException {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    if (!desc.getTableName().isSystemTable() &amp;&amp; !rsgroupHasServersOnline(desc)) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      throw new HBaseIOException("No online servers in the rsgroup, which table " +<a name="line.454"></a>
-<span class="sourceLineNo">455</span>          desc.getTableName().getNameAsString() + " belongs to");<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    }<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  }<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  // Assign table to default RSGroup.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  @Override<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  public void postCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    assignTableToGroup(desc);<a name="line.463"></a>
+<span class="sourceLineNo">364</span>        checkPermission("moveServersAndTables");<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        groupAdminServer.moveServersAndTables(hostPorts, tables, request.getTargetGroup());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>          master.getMasterCoprocessorHost().postMoveServersAndTables(hostPorts, tables,<a name="line.367"></a>
+<span class="sourceLineNo">368</span>              request.getTargetGroup());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        }<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      } catch (IOException e) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      done.run(builder.build());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>    @Override<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    public void removeServers(RpcController controller,<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        RemoveServersRequest request,<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        RpcCallback&lt;RemoveServersResponse&gt; done) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      RemoveServersResponse.Builder builder =<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          RemoveServersResponse.newBuilder();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      Set&lt;Address&gt; servers = Sets.newHashSet();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        servers.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      LOG.info(master.getClientIdAuditPrefix()<a name="line.386"></a>
+<span class="sourceLineNo">387</span>          + " remove decommissioned servers from rsgroup: " + servers);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      try {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>          master.getMasterCoprocessorHost().preRemoveServers(servers);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        checkPermission("removeServers");<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        groupAdminServer.removeServers(servers);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          master.getMasterCoprocessorHost().postRemoveServers(servers);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      } catch (IOException e) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      done.run(builder.build());<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>  boolean rsgroupHasServersOnline(TableDescriptor desc) throws IOException {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    String groupName;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    try {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      groupName =<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      if (groupName == null) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      }<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    } catch (MasterNotRunningException | PleaseHoldException e) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      LOG.info("Master has not initialized yet; temporarily using default RSGroup '" +<a name="line.414"></a>
+<span class="sourceLineNo">415</span>          RSGroupInfo.DEFAULT_GROUP + "' for deploy of system table");<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (rsGroupInfo == null) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      throw new ConstraintException(<a name="line.421"></a>
+<span class="sourceLineNo">422</span>          "Default RSGroup (" + groupName + ") for this table's " + "namespace does not exist.");<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    for (ServerName onlineServer : master.getServerManager().createDestinationServersList()) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      if (rsGroupInfo.getServers().contains(onlineServer.getAddress())) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        return true;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    return false;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  void assignTableToGroup(TableDescriptor desc) throws IOException {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    String groupName =<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    if (groupName == null) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    if (rsGroupInfo == null) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      throw new ConstraintException("Default RSGroup (" + groupName + ") for this table's "<a name="line.442"></a>
+<span class="sourceLineNo">443</span>          + "namespace does not exist.");<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    if (!rsGroupInfo.containsTable(desc.getTableName())) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      LOG.debug("Pre-moving table " + desc.getTableName() + " to RSGroup " + groupName);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>      groupAdminServer.moveTables(Sets.newHashSet(desc.getTableName()), groupName);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.451"></a>
+<span class="sourceLineNo">452</span>  // MasterObserver overrides<a name="line.452"></a>
+<span class="sourceLineNo">453</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>  @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  public void preCreateTableAction(<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      final TableDescriptor desc,<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      final RegionInfo[] regions) throws IOException {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    if (!desc.getTableName().isSystemTable() &amp;&amp; !rsgroupHasServersOnline(desc)) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      throw new HBaseIOException("No online servers in the rsgroup, which table " +<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          desc.getTableName().getNameAsString() + " belongs to");<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    }<a name="line.463"></a>
 <span class="sourceLineNo">464</span>  }<a name="line.464"></a>
 <span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  // Remove table from its RSGroup.<a name="line.466"></a>
+<span class="sourceLineNo">466</span>  // Assign table to default RSGroup.<a name="line.466"></a>
 <span class="sourceLineNo">467</span>  @Override<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.468"></a>
-<span class="sourceLineNo">469</span>                              TableName tableName) throws IOException {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    try {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      RSGroupInfo group = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      if (group != null) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        LOG.debug(String.format("Removing deleted table '%s' from rsgroup '%s'", tableName,<a name="line.473"></a>
-<span class="sourceLineNo">474</span>            group.getName()));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        groupAdminServer.moveTables(Sets.newHashSet(tableName), null);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    } catch (IOException ex) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      LOG.debug("Failed to perform RSGroup information cleanup for table: " + tableName, ex);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    }<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>  @Override<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                 NamespaceDescriptor ns) throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    String group = ns.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    if(group != null &amp;&amp; groupAdminServer.getRSGroupInfo(group) == null) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      throw new ConstraintException("Region server group "+group+" does not exit");<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    }<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @Override<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      NamespaceDescriptor currentNsDesc, NamespaceDescriptor newNsDesc) throws IOException {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    preCreateNamespace(ctx, newNsDesc);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>  @Override<a name="line.497"></a>
-<span class="sourceLineNo">498</span>  public void preCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      SnapshotDescription snapshot, TableDescriptor desc) throws IOException {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    assignTableToGroup(desc);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>  }<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>  @Override<a name="line.503"></a>
-<span class="sourceLineNo">504</span>  public void postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      List&lt;ServerName&gt; servers, List&lt;ServerName&gt; notClearedServers)<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      throws IOException {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    Set&lt;Address&gt; clearedServer = servers.stream().<a name="line.507"></a>
-<span class="sourceLineNo">508</span>        filter(server -&gt; !notClearedServers.contains(server)).<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        map(ServerName::getAddress).<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        collect(Collectors.toSet());<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    groupAdminServer.removeServers(clearedServer);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>  }<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>  public void checkPermission(String request) throws IOException {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    accessChecker.requirePermission(getActiveUser(), request, Action.ADMIN);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>  }<a name="line.516"></a>
-<span class="sourceLineNo">517</span><a name="line.517"></a>
-<span class="sourceLineNo">518</span>  /**<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * Returns the active user to which authorization checks should be applied.<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * If we are in the context of an RPC call, the remote user is used,<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * otherwise the currently logged in user is used.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   */<a name="line.522"></a>
-<span class="sourceLineNo">523</span>  private User getActiveUser() throws IOException {<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    // for non-rpc handling, fallback to system user<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    Optional&lt;User&gt; optionalUser = RpcServer.getRequestUser();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    if (optionalUser.isPresent()) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      return optionalUser.get();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    return userProvider.getCurrent();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>}<a name="line.531"></a>
+<span class="sourceLineNo">468</span>  public void postCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.468"></a>
+<span class="sourceLineNo">469</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    assignTableToGroup(desc);<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>  // Remove table from its RSGroup.<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                              TableName tableName) throws IOException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    try {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      RSGroupInfo group = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (group != null) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        LOG.debug(String.format("Removing deleted table '%s' from rsgroup '%s'", tableName,<a name="line.480"></a>
+<span class="sourceLineNo">481</span>            group.getName()));<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        groupAdminServer.moveTables(Sets.newHashSet(tableName), null);<a name="line.482"></a>
+<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    } catch (IOException ex) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      LOG.debug("Failed to perform RSGroup information cleanup for table: " + tableName, ex);<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
+<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>  @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                 NamespaceDescriptor ns) throws IOException {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    String group = ns.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    if(group != null &amp;&amp; groupAdminServer.getRSGroupInfo(group) == null) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      throw new ConstraintException("Region server group "+group+" does not exit");<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>  }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>  @Override<a name="line.498"></a>
+<span class="sourceLineNo">499</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.499"></a>
+<span class="sourceLineNo">500</span>      NamespaceDescriptor currentNsDesc, NamespaceDescriptor newNsDesc) throws IOException {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    preCreateNamespace(ctx, newNsDesc);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>  }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>  @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>  public void preCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      SnapshotDescription snapshot, TableDescriptor desc) throws IOException {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>    assignTableToGroup(desc);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>  }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>  @Override<a name="line.510"></a>
+<span class="sourceLineNo">511</span>  public void postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.511"></a>
+<span class="sourceLineNo">512</span>      List&lt;ServerName&gt; servers, List&lt;ServerName&gt; notClearedServers)<a name="line.512"></a>
+<span class="sourceLineNo">513</span>      throws IOException {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    Set&lt;Address&gt; clearedServer = servers.stream().<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        filter(server -&gt; !notClearedServers.contains(server)).<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        map(ServerName::getAddress).<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        collect(Collectors.toSet());<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    groupAdminServer.removeServers(clearedServer);<a name="line.518"></a>
+<span class="sourceLineNo">519</span>  }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>  public void checkPermission(String request) throws IOException {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    accessChecker.requirePermission(getActiveUser(), request, Action.ADMIN);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   * Returns the active user to which authorization checks should be applied.<a name="line.526"></a>
+<span class="sourceLineNo">527</span>   * If we are in the context of an RPC call, the remote user is used,<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   * otherwise the currently logged in user is used.<a name="line.528"></a>
+<span class="sourceLineNo">529</span>   */<a name="line.529"></a>
+<span class="sourceLineNo">530</span>  private User getActiveUser() throws IOException {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    // for non-rpc handling, fallback to system user<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    Optional&lt;User&gt; optionalUser = RpcServer.getRequestUser();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    if (optionalUser.isPresent()) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      return optionalUser.get();<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    return userProvider.getCurrent();<a name="line.536"></a>
+<span class="sourceLineNo">537</span>  }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>}<a name="line.538"></a>
 
 
 


[49/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/apidocs/allclasses-frame.html b/apidocs/allclasses-frame.html
index 02e4170..9c3fc60 100644
--- a/apidocs/allclasses-frame.html
+++ b/apidocs/allclasses-frame.html
@@ -355,6 +355,7 @@
 <li><a href="org/apache/hadoop/hbase/client/replication/TableCFs.html" title="class in org.apache.hadoop.hbase.client.replication" target="classFrame">TableCFs</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client" target="classFrame"><span class="interfaceName">TableDescriptor</span></a></li>
 <li><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorBuilder</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorUtils</a></li>
 <li><a href="org/apache/hadoop/hbase/TableExistsException.html" title="class in org.apache.hadoop.hbase" target="classFrame">TableExistsException</a></li>
 <li><a href="org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase" target="classFrame">TableInfoMissingException</a></li>
 <li><a href="org/apache/hadoop/hbase/mapred/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapred" target="classFrame">TableInputFormat</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/apidocs/allclasses-noframe.html b/apidocs/allclasses-noframe.html
index 2bd2ac8..e3e55b6 100644
--- a/apidocs/allclasses-noframe.html
+++ b/apidocs/allclasses-noframe.html
@@ -355,6 +355,7 @@
 <li><a href="org/apache/hadoop/hbase/client/replication/TableCFs.html" title="class in org.apache.hadoop.hbase.client.replication">TableCFs</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><span class="interfaceName">TableDescriptor</span></a></li>
 <li><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils</a></li>
 <li><a href="org/apache/hadoop/hbase/TableExistsException.html" title="class in org.apache.hadoop.hbase">TableExistsException</a></li>
 <li><a href="org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a></li>
 <li><a href="org/apache/hadoop/hbase/mapred/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapred">TableInputFormat</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 49fd995..c388812 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -2169,6 +2169,11 @@
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html#computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">computeDelta(TableDescriptor, TableDescriptor)</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils</a></dt>
+<dd>
+<div class="block">Compares two <a href="org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TsvImporterMapper.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TsvImporterMapper.html" title="class in org.apache.hadoop.hbase.mapreduce">TsvImporterMapper</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#CONF_DEST_PREFIX">CONF_DEST_PREFIX</a></span> - Static variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.html" title="class in org.apache.hadoop.hbase.snapshot">ExportSnapshot</a></dt>
@@ -18087,6 +18092,8 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </dd>
 <dt><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorBuilder</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Admin.html#tableExists-org.apache.hadoop.hbase.TableName-">tableExists(TableName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#tableExists-org.apache.hadoop.hbase.TableName-">tableExists(TableName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.html b/apidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.html
index 0bf1b4d..5456d0b 100644
--- a/apidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.html
+++ b/apidocs/org/apache/hadoop/hbase/client/TableDescriptorBuilder.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" target="_top">Frames</a></li>
@@ -863,7 +863,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescript
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.html b/apidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
new file mode 100644
index 0000000..6362025
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
@@ -0,0 +1,250 @@
+<!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>TableDescriptorUtils (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="TableDescriptorUtils (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/TableDescriptorUtils.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/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.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>Field&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>Field&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.client</div>
+<h2 title="Class TableDescriptorUtils" class="title">Class TableDescriptorUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TableDescriptorUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public final class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html#line.33">TableDescriptorUtils</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== 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="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>static org.apache.hadoop.hbase.client.TableDescriptorUtils.TableDescriptorDelta</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html#computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">computeDelta</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+            <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</code>
+<div class="block">Compares two <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://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="https://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="https://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">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>computeDelta</h4>
+<pre>public static&nbsp;org.apache.hadoop.hbase.client.TableDescriptorUtils.TableDescriptorDelta&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html#line.96">computeDelta</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+                                                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</pre>
+<div class="block">Compares two <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a TableDescriptorDelta that contains the added/deleted/modified column names</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/TableDescriptorUtils.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/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.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>Field&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>Field&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;2018 <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/4df09ed9/apidocs/org/apache/hadoop/hbase/client/WrongRowIOException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/WrongRowIOException.html b/apidocs/org/apache/hadoop/hbase/client/WrongRowIOException.html
index ed3d76a..d14e707 100644
--- a/apidocs/org/apache/hadoop/hbase/client/WrongRowIOException.html
+++ b/apidocs/org/apache/hadoop/hbase/client/WrongRowIOException.html
@@ -43,7 +43,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
@@ -228,7 +228,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" t
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html b/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
index 6534f71..5ff2475 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
@@ -303,41 +303,49 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code>static org.apache.hadoop.hbase.client.TableDescriptorUtils.TableDescriptorDelta</code></td>
+<td class="colLast"><span class="typeNameLabel">TableDescriptorUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html#computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">computeDelta</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+            <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</code>
+<div class="block">Compares two <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#copy-org.apache.hadoop.hbase.client.TableDescriptor-">copy</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#copy-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">copy</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;name,
     <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Creates a new table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Creates a new table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>
 <div class="block">Creates a new table with an initial set of empty regions defined by the specified split keys.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>
 <div class="block">Creates a new table with an initial set of empty regions defined by the specified split keys.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
@@ -346,7 +354,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Creates a new table with the specified number of regions.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
@@ -355,26 +363,26 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Creates a new table with the specified number of regions.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#createTableAsync-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
                 byte[][]&nbsp;splitKeys)</code>
 <div class="block">Creates a new table but does not block and wait for it to come online.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#modifyTable-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>
 <div class="block">Modify an existing table, more IRB friendly version.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#modifyTable-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Modify an existing table, more IRB friendly version.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#modifyTable-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
            <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>
@@ -384,13 +392,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#modifyTableAsync-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>
 <div class="block">Modify an existing table, more IRB (ruby) friendly version.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#modifyTableAsync-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>
@@ -400,13 +408,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#newBuilder-org.apache.hadoop.hbase.client.TableDescriptor-">newBuilder</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Copy all values, families, and name from the input.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#toByteArray-org.apache.hadoop.hbase.client.TableDescriptor-">toByteArray</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.html b/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.html
new file mode 100644
index 0000000..63e22b4
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.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.client.TableDescriptorUtils (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.client.TableDescriptorUtils (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/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.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.client.TableDescriptorUtils" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TableDescriptorUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TableDescriptorUtils</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/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.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;2018 <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/4df09ed9/apidocs/org/apache/hadoop/hbase/client/package-frame.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-frame.html b/apidocs/org/apache/hadoop/hbase/client/package-frame.html
index 395c3ad..84bf646 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-frame.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-frame.html
@@ -71,6 +71,7 @@
 <li><a href="Scan.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">Scan</a></li>
 <li><a href="SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">SnapshotDescription</a></li>
 <li><a href="TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorBuilder</a></li>
+<li><a href="TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorUtils</a></li>
 </ul>
 <h2 title="Enums">Enums</h2>
 <ul title="Enums">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/client/package-summary.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-summary.html b/apidocs/org/apache/hadoop/hbase/client/package-summary.html
index c9a72bf..1335371 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-summary.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-summary.html
@@ -424,6 +424,10 @@
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/package-tree.html b/apidocs/org/apache/hadoop/hbase/client/package-tree.html
index bbf2b48..0d0073b 100644
--- a/apidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -116,6 +116,7 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">RowMutations</span></a> (implements org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotDescription</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorBuilder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils</span></a></li>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html b/apidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html
index f6eda02..78b7130 100644
--- a/apidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html
+++ b/apidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html#line.32">TableCFs</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Used by <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#listReplicatedTableCFs--"><code>Admin.listReplicatedTableCFs()</code></a>.
- The cfs is a map of <ColumnFamily, ReplicationScope>.</div>
+ The cfs is a map of &lt;ColumnFamily, ReplicationScope>.</div>
 </li>
 </ul>
 </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/net/Address.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/net/Address.html b/apidocs/org/apache/hadoop/hbase/net/Address.html
index de1492e..19dbcad 100644
--- a/apidocs/org/apache/hadoop/hbase/net/Address.html
+++ b/apidocs/org/apache/hadoop/hbase/net/Address.html
@@ -120,7 +120,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <div class="block">An immutable type to hold a hostname and port combo, like an Endpoint
  or java.net.InetSocketAddress (but without danger of our calling
  resolve -- we do NOT want a resolve happening every time we want
- to hold a hostname and port combo). This class is also <<Comparable>>.
+ to hold a hostname and port combo). This class is also <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang"><code>Comparable</code></a>
  <p>In implementation this class is a facade over Guava's <code>HostAndPort</code>.
  We cannot have Guava classes in our API hence this Type.</div>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html b/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
index 7a20382..eb37165 100644
--- a/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
@@ -595,7 +595,7 @@ extends org.apache.hadoop.hbase.util.AbstractByteRange</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleByteRange.html#line.128">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;thatObject)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.util.AbstractByteRange</code></dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html b/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
index d20cee3..fb8ad90 100644
--- a/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
@@ -623,7 +623,7 @@ extends org.apache.hadoop.hbase.util.AbstractByteRange</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html#line.226">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;thatObject)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.util.AbstractByteRange</code></dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html b/apidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html
index f1df1dd..e3396f1 100644
--- a/apidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html
@@ -130,7 +130,7 @@ extends org.apache.hadoop.hbase.util.AbstractPositionedByteRange</pre>
  support and it is a readonly version. <code>position</code> is considered
  transient, not fundamental to the definition of the range, and does not
  participate in <code>AbstractByteRange.compareTo(ByteRange)</code>, <code>AbstractByteRange.hashCode()</code>, or
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>Object.equals(Object)</code></a>. <code>Position</code> is retained by copy operations.</div>
+ <code>AbstractByteRange.equals(Object)</code>. <code>Position</code> is retained by copy operations.</div>
 </li>
 </ul>
 </div>
@@ -386,14 +386,14 @@ extends org.apache.hadoop.hbase.util.AbstractPositionedByteRange</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.AbstractByteRange</h3>
-<code>clearHashCache, compareTo, deepCopySubRangeTo, deepCopyTo, deepCopyToNewArray, get, getBytes, getInt, getLength, getLong, getOffset, getShort, getVLong, getVLongSize, hashCode, isEmpty, isEmpty, isHashCached, toString</code></li>
+<code>clearHashCache, compareTo, deepCopySubRangeTo, deepCopyTo, deepCopyToNewArray, equals, get, getBytes, getInt, getLength, getLong, getOffset, getShort, getVLong, getVLongSize, hashCode, isEmpty, isEmpty, isHashCached, toString</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.htm
 l?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://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.util.ByteRange">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html b/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
index b535bc0..6f00ae0 100644
--- a/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
@@ -130,7 +130,7 @@ extends org.apache.hadoop.hbase.util.AbstractPositionedByteRange</pre>
  position support and it is a mutable version. <code>position</code> is considered transient,
  not fundamental to the definition of the range, and does not participate in
  <code>AbstractByteRange.compareTo(ByteRange)</code>, <code>AbstractByteRange.hashCode()</code>, or
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>Object.equals(Object)</code></a>. <code>Position</code> is retained by copy operations.</div>
+ <code>AbstractByteRange.equals(Object)</code>. <code>Position</code> is retained by copy operations.</div>
 </li>
 </ul>
 </div>
@@ -392,14 +392,14 @@ extends org.apache.hadoop.hbase.util.AbstractPositionedByteRange</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.AbstractByteRange</h3>
-<code>clearHashCache, compareTo, deepCopySubRangeTo, deepCopyTo, deepCopyToNewArray, get, getBytes, getInt, getLength, getLong, getOffset, getShort, getVLong, getVLongSize, hashCode, isEmpty, isEmpty, isHashCached, toString</code></li>
+<code>clearHashCache, compareTo, deepCopySubRangeTo, deepCopyTo, deepCopyToNewArray, equals, get, getBytes, getInt, getLength, getLong, getOffset, getShort, getVLong, getVLongSize, hashCode, isEmpty, isEmpty, isHashCached, toString</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.htm
 l?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://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.util.ByteRange">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index 7cad833..61351d8 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -499,6 +499,7 @@
 <li type="circle">org.apache.hadoop.hbase.types.<a href="org/apache/hadoop/hbase/types/StructIterator.html" title="class in org.apache.hadoop.hbase.types"><span class="typeNameLink">StructIterator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TableCFs.html" title="class in org.apache.hadoop.hbase.client.replication"><span class="typeNameLink">TableCFs</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorBuilder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableInputFormatBase.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableInputFormatBase</span></a> (implements org.apache.hadoop.mapred.InputFormat&lt;K,V&gt;)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableInputFormat</span></a> (implements org.apache.hadoop.mapred.JobConfigurable)</li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html b/apidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
new file mode 100644
index 0000000..8a1838a
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
@@ -0,0 +1,171 @@
+<!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> *<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * or more contributor license agreements.  See the NOTICE file<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * distributed with this work for additional information<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * to you under the Apache License, Version 2.0 (the<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * "License"); you may not use this file except in compliance<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * with the License.  You may obtain a copy of the License at<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.11"></a>
+<span class="sourceLineNo">012</span> *<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Unless required by applicable law or agreed to in writing, software<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * See the License for the specific language governing permissions and<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * limitations under the License.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.client;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Collections;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.Map;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Set;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.TreeMap;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.TreeSet;<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.util.Bytes;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@InterfaceAudience.Public<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public final class TableDescriptorUtils {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  public final static class TableDescriptorDelta {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    private final Set&lt;byte[]&gt; columnsAdded;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>    private final Set&lt;byte[]&gt; columnsDeleted;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    private final Set&lt;byte[]&gt; columnsModified;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>    private TableDescriptorDelta(TableDescriptor oldTD, TableDescriptor newTD) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>      Preconditions.checkNotNull(oldTD);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>      Preconditions.checkNotNull(newTD);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>      Map&lt;byte[], ColumnFamilyDescriptor&gt; oldCFs = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      Set&lt;byte[]&gt; newCFs = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>      // CFD -&gt; (name, CFD)<a name="line.46"></a>
+<span class="sourceLineNo">047</span>      for (ColumnFamilyDescriptor cfd : oldTD.getColumnFamilies()) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        oldCFs.put(cfd.getName(), cfd);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>      Set&lt;byte[]&gt; added = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      Set&lt;byte[]&gt; modified = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>      for (ColumnFamilyDescriptor cfd : newTD.getColumnFamilies()) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        byte[] cfName = cfd.getName();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        newCFs.add(cfName);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        if (!oldCFs.containsKey(cfName)) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>          // If column family is in newTD but not oldTD, then it was added<a name="line.59"></a>
+<span class="sourceLineNo">060</span>          added.add(cfName);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        } else if (!cfd.equals(oldCFs.get(cfName))) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>          // If column family is in both, but not equal, then it was modified<a name="line.62"></a>
+<span class="sourceLineNo">063</span>          modified.add(cfName);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>      // If column family is in oldTD, but not in newTD, then it got deleted.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      Set&lt;byte[]&gt; deleted = oldCFs.keySet();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      deleted.removeAll(newCFs);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>      columnsAdded = Collections.unmodifiableSet(added);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      columnsDeleted = Collections.unmodifiableSet(deleted);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      columnsModified = Collections.unmodifiableSet(modified);<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 Set&lt;byte[]&gt; getColumnsAdded() {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      return columnsAdded;<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 Set&lt;byte[]&gt; getColumnsDeleted() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      return columnsDeleted;<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 Set&lt;byte[]&gt; getColumnsModified() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      return columnsModified;<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><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private TableDescriptorUtils() { }<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>   * Compares two {@link TableDescriptor} and indicate which columns were added, deleted,<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * or modified from oldTD to newTD<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * @return a TableDescriptorDelta that contains the added/deleted/modified column names<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public static TableDescriptorDelta computeDelta(TableDescriptor oldTD, TableDescriptor newTD) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return new TableDescriptorDelta(oldTD, newTD);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html b/apidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html
index 67c1231..7b14d17 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html
@@ -34,7 +34,7 @@
 <span class="sourceLineNo">026</span><a name="line.26"></a>
 <span class="sourceLineNo">027</span>/**<a name="line.27"></a>
 <span class="sourceLineNo">028</span> * Used by {@link org.apache.hadoop.hbase.client.Admin#listReplicatedTableCFs()}.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * The cfs is a map of &lt;ColumnFamily, ReplicationScope&gt;.<a name="line.29"></a>
+<span class="sourceLineNo">029</span> * The cfs is a map of &amp;lt;ColumnFamily, ReplicationScope&gt;.<a name="line.29"></a>
 <span class="sourceLineNo">030</span> */<a name="line.30"></a>
 <span class="sourceLineNo">031</span>@InterfaceAudience.Public<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class TableCFs {<a name="line.32"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/src-html/org/apache/hadoop/hbase/net/Address.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/net/Address.html b/apidocs/src-html/org/apache/hadoop/hbase/net/Address.html
index c893aec..241c271 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/net/Address.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/net/Address.html
@@ -34,7 +34,7 @@
 <span class="sourceLineNo">026</span> * An immutable type to hold a hostname and port combo, like an Endpoint<a name="line.26"></a>
 <span class="sourceLineNo">027</span> * or java.net.InetSocketAddress (but without danger of our calling<a name="line.27"></a>
 <span class="sourceLineNo">028</span> * resolve -- we do NOT want a resolve happening every time we want<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * to hold a hostname and port combo). This class is also &lt;&lt;Comparable&gt;&gt;.<a name="line.29"></a>
+<span class="sourceLineNo">029</span> * to hold a hostname and port combo). This class is also {@link Comparable}<a name="line.29"></a>
 <span class="sourceLineNo">030</span> * &lt;p&gt;In implementation this class is a facade over Guava's {@link HostAndPort}.<a name="line.30"></a>
 <span class="sourceLineNo">031</span> * We cannot have Guava classes in our API hence this Type.<a name="line.31"></a>
 <span class="sourceLineNo">032</span> */<a name="line.32"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html b/apidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html
index 783325b..d53276c 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html
@@ -347,7 +347,7 @@
 <span class="sourceLineNo">339</span><a name="line.339"></a>
 <span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
 <span class="sourceLineNo">341</span>   * Perform unsigned comparison between two long values. Conforms to the same interface as<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * {@link org.apache.hadoop.hbase.CellComparator#COMPARATOR#compare(Object, Object)}.<a name="line.342"></a>
+<span class="sourceLineNo">342</span>   * {@link org.apache.hadoop.hbase.CellComparator}.<a name="line.342"></a>
 <span class="sourceLineNo">343</span>   */<a name="line.343"></a>
 <span class="sourceLineNo">344</span>  private static int unsignedCmp(long x1, long x2) {<a name="line.344"></a>
 <span class="sourceLineNo">345</span>    int cmp;<a name="line.345"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 346d600..00dd367 100644
--- a/book.html
+++ b/book.html
@@ -18258,8 +18258,7 @@ to set the in-memory attribute to <em>NONE</em>).</p>
 <div class="paragraph">
 <p>When an in-memory flush happens is calculated by dividing the configured region flush size (Set in the table descriptor
 or read from <em>hbase.hregion.memstore.flush.size</em>) by the number of column families and then multiplying by
-<em>hbase.memstore.inmemoryflush.threshold.factor</em> (default is 0.014 - a little less than the size
-of a chunk).</p>
+<em>hbase.memstore.inmemoryflush.threshold.factor</em>. Default is 0.014.</p>
 </div>
 <div class="paragraph">
 <p>The number of flushes carried by the pipeline is monitored so as to fit within the bounds of memstore sizing
@@ -37955,7 +37954,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 2018-05-29 14:29:49 UTC
+Last updated 2018-05-30 14:30:07 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 945028a..9efa69c 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -306,7 +306,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 


[24/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="line.1364">

<TRUNCATED>

[15/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>      return false;<a name="line.136

<TRUNCATED>

[43/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
index eed5582..7865f25 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
@@ -2551,33 +2551,23 @@
                      <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAppend-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Append-">preAppend</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAppendAfterRowLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Append-">preAppendAfterRowLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                      <a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
-</tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
@@ -2861,72 +2851,43 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/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;tables,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#prePrepareBulkLoad-org.apache.hadoop.hbase.coprocessor.ObserverContext-">prePrepareBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Authorization check for
  SecureBulkLoadProtocol.prepareBulkLoad()</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#prePut-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Put-org.apache.hadoop.hbase.wal.WALEdit-org.apache.hadoop.hbase.client.Durability-">prePut</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
       <a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put,
       <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edit,
       <a href="../../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;encodedRegionNames)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preReplicateLogEntries-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preReplicateLogEntries</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -2934,22 +2895,22 @@
               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionInfos,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;description)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRollWALWriterRequest-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preRollWALWriterRequest</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerClose-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-">preScannerClose</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerNext-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-java.util.List-int-boolean-">preScannerNext</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s,
@@ -2957,110 +2918,110 @@
               int&nbsp;limit,
               boolean&nbsp;hasNext)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Scan-">preScannerOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                     <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          boolean&nbsp;newValue,
                          <a href="../../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
            <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
            <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
               byte[]&nbsp;splitRow)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preStopRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
              <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
            <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
            boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                               <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireAccess-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.security.access.Permission.Action...-">requireAccess</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;?&gt;&nbsp;ctx,
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
              <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
              <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>...&nbsp;permissions)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireGlobalPermission-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action-java.lang.String-">requireGlobalPermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;?&gt;&nbsp;ctx,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                        <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>&nbsp;perm,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireGlobalPermission-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action-org.apache.hadoop.hbase.TableName-java.util.Map-">requireGlobalPermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;?&gt;&nbsp;ctx,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -3068,14 +3029,14 @@
                        <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&gt;&nbsp;familyMap)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireNamespacePermission-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action...-">requireNamespacePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;?&gt;&nbsp;ctx,
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                           <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>...&nbsp;permissions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireNamespacePermission-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.TableName-java.util.Map-org.apache.hadoop.hbase.security.access.Permission.Action...-">requireNamespacePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;?&gt;&nbsp;ctx,
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -3084,13 +3045,13 @@
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&gt;&nbsp;familyMap,
                           <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>...&nbsp;permissions)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requirePermission-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action-">requirePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;?&gt;&nbsp;ctx,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
                  <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>&nbsp;perm)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requirePermission-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-byte:A-byte:A-org.apache.hadoop.hbase.security.access.Permission.Action...-">requirePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;?&gt;&nbsp;ctx,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -3099,7 +3060,7 @@
                  byte[]&nbsp;qualifier,
                  <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>...&nbsp;permissions)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireTablePermission-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-byte:A-byte:A-org.apache.hadoop.hbase.security.access.Permission.Action...-">requireTablePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;?&gt;&nbsp;ctx,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -3108,7 +3069,7 @@
                       byte[]&nbsp;qualifier,
                       <a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>...&nbsp;permissions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CoprocessorWhitelistMasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/CoprocessorWhitelistMasterObserver.html#verifyCoprocessors-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-">verifyCoprocessors</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)</code>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 ce950b0..ae0124e 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/4df09ed9/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 d90d39c..42ad4fb 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -183,14 +183,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/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/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/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/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
index 6528d7e..cb9ca66 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
@@ -451,7 +451,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  key/value into account. Used for single-level indexes.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#add(byte[], long, int, long)}</code></dd>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#add-byte:A-long-int-long-"><code>add(byte[], long, int, long)</code></a></dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 76b740b..4d92696 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="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/4df09ed9/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
index 56f50bb..8411756 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcServer.html
@@ -473,7 +473,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#channelIO-java.nio.channels.ReadableByteChannel-java.nio.channels.WritableByteChannel-java.nio.ByteBuffer-">channelIO</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/ReadableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">ReadableByteChannel</a>&nbsp;readCh,
          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">WritableByteChannel</a>&nbsp;writeCh,
          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)</code>
-<div class="block">Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer).</div>
+<div class="block">Helper for <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-"><code>channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)</code></a>.</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
@@ -1519,7 +1519,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterfac
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/channels/WritableByteChannel.html?is-external=true" title="class or interface in java.nio.channels">WritableByteChannel</a>&nbsp;writeCh,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<div class="block">Helper for {@link #channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer).
+<div class="block">Helper for <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html#channelRead-java.nio.channels.ReadableByteChannel-java.nio.ByteBuffer-"><code>channelRead(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer)</code></a>.
  Only one of readCh or writeCh should be non-null.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 29a79fd..a6039ad 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -349,9 +349,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/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/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 730b7cf..6ec2fb5 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="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html
index de5c30b..8877e83 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html
@@ -324,7 +324,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html
index be409e5..d8983d6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html
@@ -312,7 +312,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
index e4cd8bf..d82267d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
@@ -533,7 +533,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/St
 ateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">


[08/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html b/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
index 3b08b86..80483ee 100644
--- a/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
+++ b/testapidocs/src-html/org/apache/hadoop/hbase/HBaseTestingUtility.html
@@ -598,7 +598,7 @@
 <span class="sourceLineNo">590</span>   * Start a minidfscluster.<a name="line.590"></a>
 <span class="sourceLineNo">591</span>   * @param servers How many DNs to start.<a name="line.591"></a>
 <span class="sourceLineNo">592</span>   * @throws Exception<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.593"></a>
+<span class="sourceLineNo">593</span>   * @see #shutdownMiniDFSCluster()<a name="line.593"></a>
 <span class="sourceLineNo">594</span>   * @return The mini dfs cluster created.<a name="line.594"></a>
 <span class="sourceLineNo">595</span>   */<a name="line.595"></a>
 <span class="sourceLineNo">596</span>  public MiniDFSCluster startMiniDFSCluster(int servers) throws Exception {<a name="line.596"></a>
@@ -613,7 +613,7 @@
 <span class="sourceLineNo">605</span>   * datanodes will have the same host name.<a name="line.605"></a>
 <span class="sourceLineNo">606</span>   * @param hosts hostnames DNs to run on.<a name="line.606"></a>
 <span class="sourceLineNo">607</span>   * @throws Exception<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.608"></a>
+<span class="sourceLineNo">608</span>   * @see #shutdownMiniDFSCluster()<a name="line.608"></a>
 <span class="sourceLineNo">609</span>   * @return The mini dfs cluster created.<a name="line.609"></a>
 <span class="sourceLineNo">610</span>   */<a name="line.610"></a>
 <span class="sourceLineNo">611</span>  public MiniDFSCluster startMiniDFSCluster(final String hosts[])<a name="line.611"></a>
@@ -631,7 +631,7 @@
 <span class="sourceLineNo">623</span>   * @param servers How many DNs to start.<a name="line.623"></a>
 <span class="sourceLineNo">624</span>   * @param hosts hostnames DNs to run on.<a name="line.624"></a>
 <span class="sourceLineNo">625</span>   * @throws Exception<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.626"></a>
+<span class="sourceLineNo">626</span>   * @see #shutdownMiniDFSCluster()<a name="line.626"></a>
 <span class="sourceLineNo">627</span>   * @return The mini dfs cluster created.<a name="line.627"></a>
 <span class="sourceLineNo">628</span>   */<a name="line.628"></a>
 <span class="sourceLineNo">629</span>  public MiniDFSCluster startMiniDFSCluster(int servers, final String hosts[])<a name="line.629"></a>
@@ -775,7 +775,7 @@
 <span class="sourceLineNo">767</span>   * Start up a minicluster of hbase, dfs, and zookeeper.<a name="line.767"></a>
 <span class="sourceLineNo">768</span>   * @throws Exception<a name="line.768"></a>
 <span class="sourceLineNo">769</span>   * @return Mini hbase cluster instance created.<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.770"></a>
+<span class="sourceLineNo">770</span>   * @see #shutdownMiniDFSCluster()<a name="line.770"></a>
 <span class="sourceLineNo">771</span>   */<a name="line.771"></a>
 <span class="sourceLineNo">772</span>  public MiniHBaseCluster startMiniCluster() throws Exception {<a name="line.772"></a>
 <span class="sourceLineNo">773</span>    return startMiniCluster(1, 1);<a name="line.773"></a>
@@ -785,7 +785,7 @@
 <span class="sourceLineNo">777</span>   * Start up a minicluster of hbase, dfs, and zookeeper where WAL's walDir is created separately.<a name="line.777"></a>
 <span class="sourceLineNo">778</span>   * @throws Exception<a name="line.778"></a>
 <span class="sourceLineNo">779</span>   * @return Mini hbase cluster instance created.<a name="line.779"></a>
-<span class="sourceLineNo">780</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.780"></a>
+<span class="sourceLineNo">780</span>   * @see #shutdownMiniDFSCluster()<a name="line.780"></a>
 <span class="sourceLineNo">781</span>   */<a name="line.781"></a>
 <span class="sourceLineNo">782</span>  public MiniHBaseCluster startMiniCluster(boolean withWALDir) throws Exception {<a name="line.782"></a>
 <span class="sourceLineNo">783</span>    return startMiniCluster(1, 1, 1, null, null, null, false, withWALDir);<a name="line.783"></a>
@@ -797,7 +797,7 @@
 <span class="sourceLineNo">789</span>   * (will overwrite if dir already exists)<a name="line.789"></a>
 <span class="sourceLineNo">790</span>   * @throws Exception<a name="line.790"></a>
 <span class="sourceLineNo">791</span>   * @return Mini hbase cluster instance created.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * @see {@link #shutdownMiniDFSCluster()}<a name="line.792"></a>
+<span class="sourceLineNo">792</span>   * @see #shutdownMiniDFSCluster()<a name="line.792"></a>
 <span class="sourceLineNo">793</span>   */<a name="line.793"></a>
 <span class="sourceLineNo">794</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves, boolean create)<a name="line.794"></a>
 <span class="sourceLineNo">795</span>  throws Exception {<a name="line.795"></a>
@@ -814,7 +814,7 @@
 <span class="sourceLineNo">806</span>   * hbase.regionserver.info.port is -1 (i.e. no ui per regionserver) otherwise<a name="line.806"></a>
 <span class="sourceLineNo">807</span>   * bind errors.<a name="line.807"></a>
 <span class="sourceLineNo">808</span>   * @throws Exception<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * @see {@link #shutdownMiniCluster()}<a name="line.809"></a>
+<span class="sourceLineNo">809</span>   * @see #shutdownMiniCluster()<a name="line.809"></a>
 <span class="sourceLineNo">810</span>   * @return Mini hbase cluster instance created.<a name="line.810"></a>
 <span class="sourceLineNo">811</span>   */<a name="line.811"></a>
 <span class="sourceLineNo">812</span>  public MiniHBaseCluster startMiniCluster(final int numSlaves)<a name="line.812"></a>
@@ -831,7 +831,7 @@
 <span class="sourceLineNo">823</span>   * Start minicluster. Whether to create a new root or data dir path even if such a path<a name="line.823"></a>
 <span class="sourceLineNo">824</span>   * has been created earlier is decided based on flag &lt;code&gt;create&lt;/code&gt;<a name="line.824"></a>
 <span class="sourceLineNo">825</span>   * @throws Exception<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * @see {@link #shutdownMiniCluster()}<a name="line.826"></a>
+<span class="sourceLineNo">826</span>   * @see #shutdownMiniCluster()<a name="line.826"></a>
 <span class="sourceLineNo">827</span>   * @return Mini hbase cluster instance created.<a name="line.827"></a>
 <span class="sourceLineNo">828</span>   */<a name="line.828"></a>
 <span class="sourceLineNo">829</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.829"></a>
@@ -843,7 +843,7 @@
 <span class="sourceLineNo">835</span>  /**<a name="line.835"></a>
 <span class="sourceLineNo">836</span>   * start minicluster<a name="line.836"></a>
 <span class="sourceLineNo">837</span>   * @throws Exception<a name="line.837"></a>
-<span class="sourceLineNo">838</span>   * @see {@link #shutdownMiniCluster()}<a name="line.838"></a>
+<span class="sourceLineNo">838</span>   * @see #shutdownMiniCluster()<a name="line.838"></a>
 <span class="sourceLineNo">839</span>   * @return Mini hbase cluster instance created.<a name="line.839"></a>
 <span class="sourceLineNo">840</span>   */<a name="line.840"></a>
 <span class="sourceLineNo">841</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.841"></a>
@@ -880,7 +880,7 @@
 <span class="sourceLineNo">872</span>   * If you start MiniDFSCluster without host names,<a name="line.872"></a>
 <span class="sourceLineNo">873</span>   * all instances of the datanodes will have the same host name.<a name="line.873"></a>
 <span class="sourceLineNo">874</span>   * @throws Exception<a name="line.874"></a>
-<span class="sourceLineNo">875</span>   * @see {@link #shutdownMiniCluster()}<a name="line.875"></a>
+<span class="sourceLineNo">875</span>   * @see #shutdownMiniCluster()<a name="line.875"></a>
 <span class="sourceLineNo">876</span>   * @return Mini hbase cluster instance created.<a name="line.876"></a>
 <span class="sourceLineNo">877</span>   */<a name="line.877"></a>
 <span class="sourceLineNo">878</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.878"></a>
@@ -922,7 +922,7 @@
 <span class="sourceLineNo">914</span>   * @param regionserverClass The class to use as HRegionServer, or null for<a name="line.914"></a>
 <span class="sourceLineNo">915</span>   * default<a name="line.915"></a>
 <span class="sourceLineNo">916</span>   * @throws Exception<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @see {@link #shutdownMiniCluster()}<a name="line.917"></a>
+<span class="sourceLineNo">917</span>   * @see #shutdownMiniCluster()<a name="line.917"></a>
 <span class="sourceLineNo">918</span>   * @return Mini hbase cluster instance created.<a name="line.918"></a>
 <span class="sourceLineNo">919</span>   */<a name="line.919"></a>
 <span class="sourceLineNo">920</span>  public MiniHBaseCluster startMiniCluster(final int numMasters,<a name="line.920"></a>
@@ -1011,7 +1011,7 @@
 <span class="sourceLineNo">1003</span>   * @return Reference to the hbase mini hbase cluster.<a name="line.1003"></a>
 <span class="sourceLineNo">1004</span>   * @throws IOException<a name="line.1004"></a>
 <span class="sourceLineNo">1005</span>   * @throws InterruptedException<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   * @see {@link #startMiniCluster()}<a name="line.1006"></a>
+<span class="sourceLineNo">1006</span>   * @see #startMiniCluster()<a name="line.1006"></a>
 <span class="sourceLineNo">1007</span>   */<a name="line.1007"></a>
 <span class="sourceLineNo">1008</span>  public MiniHBaseCluster startMiniHBaseCluster(final int numMasters,<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span>        final int numSlaves, List&lt;Integer&gt; rsPorts, Class&lt;? extends HMaster&gt; masterClass,<a name="line.1009"></a>
@@ -1096,7 +1096,7 @@
 <span class="sourceLineNo">1088</span>  /**<a name="line.1088"></a>
 <span class="sourceLineNo">1089</span>   * Stops mini hbase, zk, and hdfs clusters.<a name="line.1089"></a>
 <span class="sourceLineNo">1090</span>   * @throws IOException<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>   * @see {@link #startMiniCluster(int)}<a name="line.1091"></a>
+<span class="sourceLineNo">1091</span>   * @see #startMiniCluster(int)<a name="line.1091"></a>
 <span class="sourceLineNo">1092</span>   */<a name="line.1092"></a>
 <span class="sourceLineNo">1093</span>  public void shutdownMiniCluster() throws Exception {<a name="line.1093"></a>
 <span class="sourceLineNo">1094</span>    LOG.info("Shutting down minicluster");<a name="line.1094"></a>
@@ -1754,10 +1754,10 @@
 <span class="sourceLineNo">1746</span><a name="line.1746"></a>
 <span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
 <span class="sourceLineNo">1748</span>   * Create an HRegion that writes to the local tmp dirs<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   * @param desc<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @param startKey<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   * @param endKey<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   * @return<a name="line.1752"></a>
+<span class="sourceLineNo">1749</span>   * @param desc a table descriptor indicating which table the region belongs to<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>   * @param startKey the start boundary of the region<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>   * @param endKey the end boundary of the region<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>   * @return a region that writes to local dir for testing<a name="line.1752"></a>
 <span class="sourceLineNo">1753</span>   * @throws IOException<a name="line.1753"></a>
 <span class="sourceLineNo">1754</span>   */<a name="line.1754"></a>
 <span class="sourceLineNo">1755</span>  public HRegion createLocalHRegion(TableDescriptor desc, byte [] startKey,<a name="line.1755"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index 445b68e..c0a968c 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -2126,6 +2126,7 @@
 <li><a href="org/apache/hadoop/hbase/master/procedure/TestTableDDLProcedureBase.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">TestTableDDLProcedureBase</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestTableDescriptorBuilder</a></li>
 <li><a href="org/apache/hadoop/hbase/master/procedure/TestTableDescriptorModificationFromClient.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">TestTableDescriptorModificationFromClient</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestTableDescriptorUtils</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestTableFavoredNodes</a></li>
 <li><a href="org/apache/hadoop/hbase/rest/model/TestTableInfoModel.html" title="class in org.apache.hadoop.hbase.rest.model" target="classFrame">TestTableInfoModel</a></li>
 <li><a href="org/apache/hadoop/hbase/mapred/TestTableInputFormat.html" title="class in org.apache.hadoop.hbase.mapred" target="classFrame">TestTableInputFormat</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 8184039..3408603 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -2126,6 +2126,7 @@
 <li><a href="org/apache/hadoop/hbase/master/procedure/TestTableDDLProcedureBase.html" title="class in org.apache.hadoop.hbase.master.procedure">TestTableDDLProcedureBase</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorBuilder</a></li>
 <li><a href="org/apache/hadoop/hbase/master/procedure/TestTableDescriptorModificationFromClient.html" title="class in org.apache.hadoop.hbase.master.procedure">TestTableDescriptorModificationFromClient</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorUtils</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client">TestTableFavoredNodes</a></li>
 <li><a href="org/apache/hadoop/hbase/rest/model/TestTableInfoModel.html" title="class in org.apache.hadoop.hbase.rest.model">TestTableInfoModel</a></li>
 <li><a href="org/apache/hadoop/hbase/mapred/TestTableInputFormat.html" title="class in org.apache.hadoop.hbase.mapred">TestTableInputFormat</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 739ff33..b499238 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -390,8 +390,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestWithDisabledAuthorization.html#ACCESS_CONTROLLER">ACCESS_CONTROLLER</a></span> - Static variable in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestWithDisabledAuthorization.html" title="class in org.apache.hadoop.hbase.security.access">TestWithDisabledAuthorization</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#accessController">accessController</a></span> - Static variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestSnapshotWithAcl.AccessReadAction.html#AccessReadAction-org.apache.hadoop.hbase.TableName-">AccessReadAction(TableName)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestSnapshotWithAcl.AccessReadAction.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotWithAcl.AccessReadAction</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestSnapshotWithAcl.AccessWriteAction.html#AccessWriteAction-org.apache.hadoop.hbase.TableName-">AccessWriteAction(TableName)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestSnapshotWithAcl.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotWithAcl.AccessWriteAction</a></dt>
@@ -1764,7 +1762,7 @@
 <div class="block">Make sure that there is only one snapshot returned from the master and its
  name and table match the passed in parameters.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/MultithreadedTestUtil.html#assertOnFutures-java.util.List-">assertOnFutures(List&lt;Future&lt;T&gt;&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MultithreadedTestUtil.html" title="class in org.apache.hadoop.hbase">MultithreadedTestUtil</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/MultithreadedTestUtil.html#assertOnFutures-java.util.List-">assertOnFutures(List&lt;Future&lt;?&gt;&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MultithreadedTestUtil.html" title="class in org.apache.hadoop.hbase">MultithreadedTestUtil</a></dt>
 <dd>
 <div class="block">Verify that no assertions have failed inside a future.</div>
 </dd>
@@ -4425,6 +4423,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorBuilder</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client">TestTableFavoredNodes</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableShell.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableShell.html" title="class in org.apache.hadoop.hbase.client">TestTableShell</a></dt>
@@ -8962,8 +8962,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.html#cp">cp</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">PerfTestCompactionPolicies</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#CP_ENV">CP_ENV</a></span> - Static variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.html#CP_ENV">CP_ENV</a></span> - Static variable in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController3.html#CP_ENV">CP_ENV</a></span> - Static variable in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController3.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController3</a></dt>
@@ -10646,8 +10644,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/MultithreadedTestUtil.TestThread.html#ctx">ctx</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MultithreadedTestUtil.TestThread.html" title="class in org.apache.hadoop.hbase">MultithreadedTestUtil.TestThread</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#CTX">CTX</a></span> - Static variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/NanoTimer.html#cumulate">cumulate</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/NanoTimer.html" title="class in org.apache.hadoop.hbase.io.hfile">NanoTimer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MultiThreadedReader.HBaseReaderThread.html#curKey">curKey</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MultiThreadedReader.HBaseReaderThread.html" title="class in org.apache.hadoop.hbase.util">MultiThreadedReader.HBaseReaderThread</a></dt>
@@ -12706,6 +12702,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestFromClientSide.html#equals-byte:A-byte:A-">equals(byte[], byte[])</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/StringRange.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/StringRange.html" title="class in org.apache.hadoop.hbase.filter">StringRange</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TestMultiTableSnapshotInputFormatImpl.ScanWithEquals.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestMultiTableSnapshotInputFormatImpl.ScanWithEquals.html" title="class in org.apache.hadoop.hbase.mapreduce">TestMultiTableSnapshotInputFormatImpl.ScanWithEquals</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/test/IntegrationTestReplication.ClusterID.html#equals-org.apache.hadoop.hbase.test.IntegrationTestReplication.ClusterID-">equals(IntegrationTestReplication.ClusterID)</a></span> - Method in class org.apache.hadoop.hbase.test.<a href="org/apache/hadoop/hbase/test/IntegrationTestReplication.ClusterID.html" title="class in org.apache.hadoop.hbase.test">IntegrationTestReplication.ClusterID</a></dt>
@@ -15866,7 +15864,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TestImportExport.html#getCount-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.filter.Filter-">getCount(Table, Filter)</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestImportExport.html" title="class in org.apache.hadoop.hbase.mapreduce">TestImportExport</a></dt>
 <dd>
-<div class="block">Count the number of keyvalues in the specified table for the given timerange</div>
+<div class="block">Count the number of keyvalues in the specified table with the given filter</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestMasterReplication.html#getCount-org.apache.hadoop.hbase.client.Table-byte:A-">getCount(Table, byte[])</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestMasterReplication.html" title="class in org.apache.hadoop.hbase.replication">TestMasterReplication</a></dt>
 <dd>&nbsp;</dd>
@@ -19977,8 +19975,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/hbck/HbckTestingUtil.html#inconsistencyFound-org.apache.hadoop.hbase.util.HBaseFsck-">inconsistencyFound(HBaseFsck)</a></span> - Static method in class org.apache.hadoop.hbase.util.hbck.<a href="org/apache/hadoop/hbase/util/hbck/HbckTestingUtil.html" title="class in org.apache.hadoop.hbase.util.hbck">HbckTestingUtil</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#increaseQuotaLimit-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">increaseQuotaLimit(TableName, SpaceViolationPolicy)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/example/WriteHeavyIncrementObserverTestBase.html#increment-int-">increment(int)</a></span> - Static method in class org.apache.hadoop.hbase.coprocessor.example.<a href="org/apache/hadoop/hbase/coprocessor/example/WriteHeavyIncrementObserverTestBase.html" title="class in org.apache.hadoop.hbase.coprocessor.example">WriteHeavyIncrementObserverTestBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/policies/BaseViolationPolicyEnforcement.html#INCREMENT">INCREMENT</a></span> - Static variable in class org.apache.hadoop.hbase.quotas.policies.<a href="org/apache/hadoop/hbase/quotas/policies/BaseViolationPolicyEnforcement.html" title="class in org.apache.hadoop.hbase.quotas.policies">BaseViolationPolicyEnforcement</a></dt>
@@ -20073,7 +20069,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestRegionSplitter.html#indexOfBytes-java.util.List-byte:A-">indexOfBytes(List&lt;byte[]&gt;, byte[])</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestRegionSplitter.html" title="class in org.apache.hadoop.hbase.util">TestRegionSplitter</a></dt>
 <dd>
-<div class="block">List.indexOf() doesn't really work for a List<byte[]>, because byte[]
+<div class="block">List.indexOf() doesn't really work for a List&lt;byte[]>, because byte[]
  doesn't override equals().</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestTimeout.html#infiniteLoop--">infiniteLoop()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestTimeout.html" title="class in org.apache.hadoop.hbase">TestTimeout</a></dt>
@@ -22123,7 +22119,7 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/io/hfile/KVGenerator.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">KVGenerator</span></a> - Class in <a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></dt>
 <dd>
-<div class="block">Generate random <key, value> pairs.</div>
+<div class="block">Generate random &lt;key, value> pairs.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/KVGenerator.html#KVGenerator-java.util.Random-boolean-org.apache.hadoop.hbase.io.hfile.RandomDistribution.DiscreteRNG-org.apache.hadoop.hbase.io.hfile.RandomDistribution.DiscreteRNG-org.apache.hadoop.hbase.io.hfile.RandomDistribution.DiscreteRNG-int-">KVGenerator(Random, boolean, RandomDistribution.DiscreteRNG, RandomDistribution.DiscreteRNG, RandomDistribution.DiscreteRNG, int)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/KVGenerator.html" title="class in org.apache.hadoop.hbase.io.hfile">KVGenerator</a></dt>
 <dd>&nbsp;</dd>
@@ -26858,6 +26854,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/PerformanceEvaluation.html#nomapred">nomapred</a></span> - Variable in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/PerformanceEvaluation.html" title="class in org.apache.hadoop.hbase.rest">PerformanceEvaluation</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#NON_EXISTENT_TABLE">NON_EXISTENT_TABLE</a></span> - Variable in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsReplication.html#NON_VIS_TAG_TYPE">NON_VIS_TAG_TYPE</a></span> - Static variable in class org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsReplication.html" title="class in org.apache.hadoop.hbase.security.visibility">TestVisibilityLabelsReplication</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsReplication.html#NON_VISIBILITY">NON_VISIBILITY</a></span> - Static variable in class org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsReplication.html" title="class in org.apache.hadoop.hbase.security.visibility">TestVisibilityLabelsReplication</a></dt>
@@ -35575,6 +35573,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#setQuotaAndThenRemoveInOneAmongTwoTables-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">setQuotaAndThenRemoveInOneAmongTwoTables(SpaceViolationPolicy)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#setQuotaLimit-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-long-">setQuotaLimit(TableName, SpaceViolationPolicy, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/RedundantKVGenerator.html#setRandomizer-java.util.Random-">setRandomizer(Random)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/RedundantKVGenerator.html" title="class in org.apache.hadoop.hbase.util">RedundantKVGenerator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/PerformanceEvaluation.TestOptions.html#setRandomSleep-int-">setRandomSleep(int)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/PerformanceEvaluation.TestOptions.html" title="class in org.apache.hadoop.hbase">PerformanceEvaluation.TestOptions</a></dt>
@@ -47916,6 +47916,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.html#testDelimitedKeyPrefixRegionSplitPolicy--">testDelimitedKeyPrefixRegionSplitPolicy()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionSplitPolicy</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html#testDelta--">testDelta()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/filter/TestDependentColumnFilter.html" title="class in org.apache.hadoop.hbase.filter"><span class="typeNameLink">TestDependentColumnFilter</span></a> - Class in <a href="org/apache/hadoop/hbase/filter/package-summary.html">org.apache.hadoop.hbase.filter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/TestDependentColumnFilter.html#TestDependentColumnFilter--">TestDependentColumnFilter()</a></span> - Constructor for class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestDependentColumnFilter.html" title="class in org.apache.hadoop.hbase.filter">TestDependentColumnFilter</a></dt>
@@ -51215,7 +51217,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html#testIdMsg">testIdMsg</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html" title="class in org.apache.hadoop.hbase.regionserver">TestCompoundBloomFilter</a></dt>
 <dd>
-<div class="block">A message of the form "in test#<number>:" to include in logging.</div>
+<div class="block">A message of the form "in test#&lt;number>:" to include in logging.</div>
 </dd>
 <dt><a href="org/apache/hadoop/hbase/util/TestIdReadWriteLock.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">TestIdReadWriteLock</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
 <dd>&nbsp;</dd>
@@ -57438,8 +57440,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#testRemoveServers--">testRemoveServers()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/TestHFileArchiving.html#testRemovesRegionDirOnArchive--">testRemovesRegionDirOnArchive()</a></span> - Method in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/TestHFileArchiving.html" title="class in org.apache.hadoop.hbase.backup">TestHFileArchiving</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html#testRemoveString--">testRemoveString()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorBuilder</a></dt>
@@ -59901,6 +59901,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableeWithNoWritesCompactions--">testSetQuotaAndThenDropTableeWithNoWritesCompactions()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableWithDisable--">testSetQuotaAndThenDropTableWithDisable()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableWithNoInserts--">testSetQuotaAndThenDropTableWithNoInserts()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableWithNoWrite--">testSetQuotaAndThenDropTableWithNoWrite()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
@@ -59927,6 +59929,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithNoWritesCompactions--">testSetQuotaAndThenRemoveWithNoWritesCompactions()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaOnNonExistingTableWithDisable--">testSetQuotaOnNonExistingTableWithDisable()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaOnNonExistingTableWithNoInserts--">testSetQuotaOnNonExistingTableWithNoInserts()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaOnNonExistingTableWithNoWrites--">testSetQuotaOnNonExistingTableWithNoWrites()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaOnNonExistingTableWithNoWritesCompaction--">testSetQuotaOnNonExistingTableWithNoWritesCompaction()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotas</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.html#testSetReplicateAllUserTables--">testSetReplicateAllUserTables()</a></span> - Method in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.html#testSetSplitOrMergeEnabled--">testSetSplitOrMergeEnabled()</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController</a></dt>
@@ -61445,6 +61455,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSTableDescriptors.html#testTableDescriptorsNoCache--">testTableDescriptorsNoCache()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSTableDescriptors.html" title="class in org.apache.hadoop.hbase.util">TestFSTableDescriptors</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTableDescriptorUtils</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html#TestTableDescriptorUtils--">TestTableDescriptorUtils()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.html#testTableDisable--">testTableDisable()</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/TestScannerResource.html#testTableDoesNotExist--">testTableDoesNotExist()</a></span> - Method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestScannerResource.html" title="class in org.apache.hadoop.hbase.rest">TestScannerResource</a></dt>
@@ -65462,8 +65476,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/TestVersionResource.html#validate-org.apache.hadoop.hbase.rest.model.VersionModel-">validate(VersionModel)</a></span> - Static method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestVersionResource.html" title="class in org.apache.hadoop.hbase.rest">TestVersionResource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#validateAdminPermissions-org.apache.hadoop.hbase.security.access.SecureTestUtil.AccessTestAction-">validateAdminPermissions(SecureTestUtil.AccessTestAction)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html#validateColumnFamilyAddition-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.TableName-java.lang.String-">validateColumnFamilyAddition(HMaster, TableName, String)</a></span> - Static method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureTestingUtility</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html#validateColumnFamilyDeletion-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.TableName-java.lang.String-">validateColumnFamilyDeletion(HMaster, TableName, String)</a></span> - Static method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureTestingUtility</a></dt>
@@ -66826,7 +66838,7 @@ the order they are declared.</div>
 <dd>
 <div class="block">A predicate 'closure' used by the <a href="org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
  <a href="org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
- {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.</div>
+ <a href="org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-long-boolean-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, long, boolean, Predicate)</code></a> methods.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html#waitExecutorService-int-">waitExecutorService(int)</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestRegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">TestRegionStates</a></dt>
 <dd>&nbsp;</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html b/testdevapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html
index 18b03b0..6f854e0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html
@@ -2656,7 +2656,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2681,7 +2681,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2705,7 +2705,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2832,7 +2832,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2851,7 +2851,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2873,7 +2873,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2900,7 +2900,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2938,7 +2938,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2958,7 +2958,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -3015,7 +3015,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -3079,7 +3079,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -3196,7 +3196,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#startMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#startMiniCluster--"><code>startMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -3250,7 +3250,7 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#startMiniCluster(int)}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#startMiniCluster-int-"><code>startMiniCluster(int)</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -4110,10 +4110,11 @@ public&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../s
 <div class="block">Create an HRegion that writes to the local tmp dirs</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>desc</code> - </dd>
-<dd><code>startKey</code> - </dd>
-<dd><code>endKey</code> - </dd>
+<dd><code>desc</code> - a table descriptor indicating which table the region belongs to</dd>
+<dd><code>startKey</code> - the start boundary of the region</dd>
+<dd><code>endKey</code> - the end boundary of the region</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>a region that writes to local dir for testing</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestBase.html
index ca6ed95..6bf44fd 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestBase.html
@@ -125,10 +125,10 @@ var activeTableTab = "activeTableTab";
 <pre>public abstract class <a href="../../../../src-html/org/apache/hadoop/hbase/IntegrationTestBase.html#line.47">IntegrationTestBase</a>
 extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
 <div class="block">Base class for HBase integration tests that want to use the Chaos Monkey.
- Usage: bin/hbase <sub_class_of_IntegrationTestBase> <options>
+ Usage: bin/hbase &lt;sub_class_of_IntegrationTestBase> &lt;options>
  Options: -h,--help Show usage
-          -m,--monkey <arg> Which chaos monkey to run
-          -monkeyProps <arg> The properties file for specifying chaos monkey properties.
+          -m,--monkey &lt;arg> Which chaos monkey to run
+          -monkeyProps &lt;arg> The properties file for specifying chaos monkey properties.
           -ncc Option to not clean up the cluster at the end.</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html b/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html
index 4e118bc..d619f15 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.html
@@ -140,7 +140,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/IntegrationTestIngest.html"
  with the replication of the edits before read_delay_ms to the given region replica id so that
  the read and verify will not fail.
 
- The job will run for <b>at least<b> given runtime (default 10min) by running a concurrent
+ The job will run for <b>at least</b> given runtime (default 10min) by running a concurrent
  writer and reader workload followed by a concurrent updater and reader workload for
  num_keys_per_server.
  <p>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/MultithreadedTestUtil.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/MultithreadedTestUtil.html b/testdevapidocs/org/apache/hadoop/hbase/MultithreadedTestUtil.html
index cbe5509..5dfa607 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/MultithreadedTestUtil.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/MultithreadedTestUtil.html
@@ -198,8 +198,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>static &lt;T&gt;&nbsp;void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/MultithreadedTestUtil.html#assertOnFutures-java.util.List-">assertOnFutures</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;T&gt;&gt;&nbsp;threadResults)</code>
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/MultithreadedTestUtil.html#assertOnFutures-java.util.List-">assertOnFutures</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;?&gt;&gt;&nbsp;threadResults)</code>
 <div class="block">Verify that no assertions have failed inside a future.</div>
 </td>
 </tr>
@@ -265,25 +265,23 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>assertOnFutures</h4>
-<pre>public static&nbsp;&lt;T&gt;&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.html#line.183">assertOnFutures</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;T&gt;&gt;&nbsp;threadResults)
-                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
-                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a></pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/MultithreadedTestUtil.html#line.182">assertOnFutures</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;?&gt;&gt;&nbsp;threadResults)
+                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent">ExecutionException</a></pre>
 <div class="block">Verify that no assertions have failed inside a future.
  Used for unit tests that spawn threads. E.g.,
  <p>
- <code>
-   List<Future<Void>> results = Lists.newArrayList();
-   Future<Void> f = executor.submit(new Callable<Void> {
+ <pre>
+   List&lt;Future&lt;Void>> results = Lists.newArrayList();
+   Future&lt;Void> f = executor.submit(new Callable&lt;Void> {
      public Void call() {
        assertTrue(someMethod());
      }
    });
    results.add(f);
    assertOnFutures(results);
- </code></div>
+ </pre></div>
 <dl>
-<dt><span class="paramLabel">Type Parameters:</span></dt>
-<dd><code>T</code> - </dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>threadResults</code> - A list of futures</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html b/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
index e039ba8..06a9967 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
@@ -222,7 +222,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.security.access.AccessController</h3>
-<code>checkLockPermissions, checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSna
 pshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, pr
 eSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preSnapshot, preSplitRegion, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireAccess, requireGlobalPermission, requireGlobalPermission, requireNamespacePermission, requireNamespacePermission, requirePermission, requirePermission, requireTablePermission, revoke, start, stop</code></li>
+<code>checkLockPermissions, checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, preCompact, preCr
 eateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preSnapshot, preSplitRegion, preTableFlush, preTruncateTabl
 e, preUnassign, preUpdateReplicationPeerConfig, requireAccess, requireGlobalPermission, requireGlobalPermission, requireNamespacePermission, requireNamespacePermission, requirePermission, requirePermission, requireTablePermission, revoke, start, stop</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -236,7 +236,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterMetrics, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionR
 egionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetClusterMetrics, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
+<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterMetrics, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionR
 egionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preAddRSGroup, preBalanceRSGroup, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetClusterMetrics, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preModifyTableAction, preMoveServers, preMoveServersAndTables, preMoveTables, preRemoveRSGroup, preRemoveServers, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html b/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html
index c4c066b..4065cc5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.html
@@ -341,7 +341,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
 <dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>{https://issues.apache.org/jira/browse/HBASE-3446}</code></dd>
+<dd><a href="https://issues.apache.org/jira/browse/HBASE-3446">HBASE-3446</a></dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html b/testdevapidocs/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html
index 1dc5a77..a21d413 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestPartialResultsFromClientSide.html
@@ -1095,13 +1095,14 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Make puts to put the input value into each combination of row, family, and qualifier</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>rows</code> - </dd>
-<dd><code>families</code> - </dd>
-<dd><code>qualifiers</code> - </dd>
-<dd><code>value</code> - </dd>
+<dd><code>rows</code> - the rows to use</dd>
+<dd><code>families</code> - the families to use</dd>
+<dd><code>qualifiers</code> - the qualifiers to use</dd>
+<dd><code>value</code> - the values to use</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>the dot product of the given rows, families, qualifiers, and values</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there is a problem creating one of the Put objects</dd>
 </dl>
 </li>
 </ul>
@@ -1119,11 +1120,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  row.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>row</code> - </dd>
-<dd><code>families</code> - </dd>
-<dd><code>qualifiers</code> - </dd>
-<dd><code>value</code> - </dd>
+<dd><code>row</code> - the row to use</dd>
+<dd><code>families</code> - the families to use</dd>
+<dd><code>qualifiers</code> - the qualifiers to use</dd>
+<dd><code>value</code> - the values to use</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>the dot product of the given families, qualifiers, and values for a given row</dd>
 </dl>
 </li>
 </ul>
@@ -1189,10 +1191,11 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  return total cell count</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>scanner</code> - </dd>
+<dd><code>scanner</code> - the scanner to exhaust</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of cells counted</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - if there is a problem retrieving cells from the scanner</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/Waiter.Predicate.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/Waiter.Predicate.html b/testdevapidocs/org/apache/hadoop/hbase/Waiter.Predicate.html
index 9a1e79f..a4c5fab 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/Waiter.Predicate.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/Waiter.Predicate.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 public static interface <a href="../../../../src-html/org/apache/hadoop/hbase/Waiter.html#line.89">Waiter.Predicate</a>&lt;E extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&gt;</pre>
 <div class="block">A predicate 'closure' used by the <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
  <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
- {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.</div>
+ <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-long-boolean-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, long, boolean, Predicate)</code></a> methods.</div>
 </li>
 </ul>
 </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/Waiter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/Waiter.html b/testdevapidocs/org/apache/hadoop/hbase/Waiter.html
index d501e20..66eeeab 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/Waiter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/Waiter.html
@@ -143,7 +143,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/Waiter.Predicate.html" title="interface in org.apache.hadoop.hbase">Waiter.Predicate</a>&lt;<a href="../../../../org/apache/hadoop/hbase/Waiter.Predicate.html" title="type parameter in Waiter.Predicate">E</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&gt;</span></code>
 <div class="block">A predicate 'closure' used by the <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>waitFor(Configuration, long, Predicate)</code></a> and
  <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>waitFor(Configuration, long, Predicate)</code></a> and
- {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.</div>
+ <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-long-boolean-org.apache.hadoop.hbase.Waiter.Predicate-"><code>waitFor(Configuration, long, long, boolean, Predicate)</code></a> methods.</div>
 </td>
 </tr>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/backup/TestHFileArchiving.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/TestHFileArchiving.html b/testdevapidocs/org/apache/hadoop/hbase/backup/TestHFileArchiving.html
index 5b17222..88d9446 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/TestHFileArchiving.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/TestHFileArchiving.html
@@ -513,9 +513,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Get the names of all the files below the given directory</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>fs</code> - </dd>
-<dd><code>archiveDir</code> - </dd>
+<dd><code>fs</code> - the file system to inspect</dd>
+<dd><code>archiveDir</code> - the directory in which to look</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>a list of all files in the directory and sub-directories</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index e159b3f..3168ee3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -145,8 +145,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 </ul>
 </li>
 </ul>


[42/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
index b5882ca..431fbd7 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html
@@ -331,7 +331,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedur
 e.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
index 61363f0..387e3e2 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
@@ -499,7 +499,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/St
 ateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 55a97e3..ca6f11f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -346,11 +346,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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/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/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
index e9cc67c..bba585c 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html
@@ -277,7 +277,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#get
 CurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apa
 che/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a hre
 f="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachinePro
 cedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html
index a7fe68d..cb0fd72 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html
@@ -324,7 +324,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proce
 dure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMach
 ineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-T
 Environment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
index 1e2eb5b..cd2bbe6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <dl>
 <dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CloneSnapshotProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CreateTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DeleteTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DisableTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/proc
 edure/EnableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">EnableTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">GCMergedRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MergeTableRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ModifyTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.h
 base.master.procedure">TruncateTableProcedure</a></dd>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CloneSnapshotProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CreateTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DeleteTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DisableTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/proc
 edure/EnableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">EnableTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">GCMergedRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MergeTableRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ModifyTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.
 hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a></dd>
 </dl>
 <hr>
 <br>
@@ -310,7 +310,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#get
 CurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apa
 che/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a hre
 f="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachinePro
 cedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
index 609df9e..c081730 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html
@@ -404,7 +404,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
index 7823103..8f108ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html
@@ -382,7 +382,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
index 399fc0b..b953520 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html
@@ -400,7 +400,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
index 0ab7f22..ba39ac6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html
@@ -387,7 +387,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
index 219f492..3e93d5a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html
@@ -369,7 +369,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/St
 ateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
index e9f0a45..f455cb4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html
@@ -371,7 +371,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
index a9d0efb..9897c11 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html
@@ -382,7 +382,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
index c4ef941..b2f7bc8 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html
@@ -347,7 +347,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
index 1edc39a..3daf653 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html
@@ -407,7 +407,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html
index cb41880..6a753f6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Queue.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" target="_top">Frames</a></li>
@@ -364,7 +364,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
@@ -840,7 +840,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/T
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Queue.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" target="_top">Frames</a></li>


[09/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html
index cbf76ed..1756883 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html
@@ -103,93 +103,98 @@
 <span class="sourceLineNo">095</span>    done.run(null);<a name="line.95"></a>
 <span class="sourceLineNo">096</span>  }<a name="line.96"></a>
 <span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    convert(PrepareBulkLoadRequest request)<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    byte [] bytes = request.toByteArray();<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest.Builder<a name="line.102"></a>
-<span class="sourceLineNo">103</span>          builder =<a name="line.103"></a>
-<span class="sourceLineNo">104</span>        org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        newBuilder();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    builder.mergeFrom(bytes);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    return builder.build();<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>  @Override<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public void cleanupBulkLoad(RpcController controller, CleanupBulkLoadRequest request,<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      RpcCallback&lt;CleanupBulkLoadResponse&gt; done) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    try {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      SecureBulkLoadManager secureBulkLoadManager = this.rsServices.getSecureBulkLoadManager();<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      secureBulkLoadManager.cleanupBulkLoad((HRegion) this.env.getRegion(), convert(request));<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      done.run(CleanupBulkLoadResponse.newBuilder().build());<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    } catch (IOException e) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    done.run(null);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  /**<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   * Convert from CPEP protobuf 2.5 to internal protobuf 3.3.<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * @throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  convert(CleanupBulkLoadRequest request)<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    byte [] bytes = request.toByteArray();<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest.Builder<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        builder =<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest.<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      newBuilder();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    builder.mergeFrom(bytes);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    return builder.build();<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  public void secureBulkLoadHFiles(RpcController controller, SecureBulkLoadHFilesRequest request,<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      RpcCallback&lt;SecureBulkLoadHFilesResponse&gt; done) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    boolean loaded = false;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    try {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      SecureBulkLoadManager secureBulkLoadManager = this.rsServices.getSecureBulkLoadManager();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      BulkLoadHFileRequest bulkLoadHFileRequest = ConvertSecureBulkLoadHFilesRequest(request);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      map = secureBulkLoadManager.secureBulkLoadHFiles((HRegion) this.env.getRegion(),<a name="line.147"></a>
-<span class="sourceLineNo">148</span>          convert(bulkLoadHFileRequest));<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      loaded = map != null &amp;&amp; !map.isEmpty();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    } catch (IOException e) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    done.run(SecureBulkLoadHFilesResponse.newBuilder().setLoaded(loaded).build());<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>  org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  convert(BulkLoadHFileRequest request)<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    byte [] bytes = request.toByteArray();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest.Builder<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        builder =<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest.<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        newBuilder();<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    builder.mergeFrom(bytes);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    return builder.build();<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  private BulkLoadHFileRequest ConvertSecureBulkLoadHFilesRequest(<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      SecureBulkLoadHFilesRequest request) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    BulkLoadHFileRequest.Builder bulkLoadHFileRequest = BulkLoadHFileRequest.newBuilder();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    RegionSpecifier region =<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        ProtobufUtil.buildRegionSpecifier(RegionSpecifierType.REGION_NAME, this.env<a name="line.172"></a>
-<span class="sourceLineNo">173</span>            .getRegionInfo().getRegionName());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    bulkLoadHFileRequest.setRegion(region).setFsToken(request.getFsToken())<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        .setBulkToken(request.getBulkToken()).setAssignSeqNum(request.getAssignSeqNum())<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .addAllFamilyPath(request.getFamilyPathList());<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    return bulkLoadHFileRequest.build();<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  public Iterable&lt;Service&gt; getServices() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    return Collections.singleton(this);<a name="line.182"></a>
+<span class="sourceLineNo">098</span>  /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   *  Convert from CPEP protobuf 2.5 to internal protobuf 3.3.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    convert(PrepareBulkLoadRequest request)<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    byte [] bytes = request.toByteArray();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest.Builder<a name="line.105"></a>
+<span class="sourceLineNo">106</span>          builder =<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest.<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        newBuilder();<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    builder.mergeFrom(bytes);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    return builder.build();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>  @Override<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public void cleanupBulkLoad(RpcController controller, CleanupBulkLoadRequest request,<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      RpcCallback&lt;CleanupBulkLoadResponse&gt; done) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    try {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      SecureBulkLoadManager secureBulkLoadManager = this.rsServices.getSecureBulkLoadManager();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      secureBulkLoadManager.cleanupBulkLoad((HRegion) this.env.getRegion(), convert(request));<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      done.run(CleanupBulkLoadResponse.newBuilder().build());<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    } catch (IOException e) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    done.run(null);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   *  Convert from CPEP protobuf 2.5 to internal protobuf 3.3.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  convert(CleanupBulkLoadRequest request)<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    byte [] bytes = request.toByteArray();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest.Builder<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        builder =<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest.<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      newBuilder();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    builder.mergeFrom(bytes);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    return builder.build();<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 secureBulkLoadHFiles(RpcController controller, SecureBulkLoadHFilesRequest request,<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      RpcCallback&lt;SecureBulkLoadHFilesResponse&gt; done) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    boolean loaded = false;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    try {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      SecureBulkLoadManager secureBulkLoadManager = this.rsServices.getSecureBulkLoadManager();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      BulkLoadHFileRequest bulkLoadHFileRequest = ConvertSecureBulkLoadHFilesRequest(request);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      map = secureBulkLoadManager.secureBulkLoadHFiles((HRegion) this.env.getRegion(),<a name="line.149"></a>
+<span class="sourceLineNo">150</span>          convert(bulkLoadHFileRequest));<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      loaded = map != null &amp;&amp; !map.isEmpty();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    } catch (IOException e) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    done.run(SecureBulkLoadHFilesResponse.newBuilder().setLoaded(loaded).build());<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  /**<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   *  Convert from CPEP protobuf 2.5 to internal protobuf 3.3.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
+<span class="sourceLineNo">161</span>  org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  convert(BulkLoadHFileRequest request)<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    byte [] bytes = request.toByteArray();<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest.Builder<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        builder =<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        newBuilder();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    builder.mergeFrom(bytes);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return builder.build();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  private BulkLoadHFileRequest ConvertSecureBulkLoadHFilesRequest(<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      SecureBulkLoadHFilesRequest request) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    BulkLoadHFileRequest.Builder bulkLoadHFileRequest = BulkLoadHFileRequest.newBuilder();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    RegionSpecifier region =<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        ProtobufUtil.buildRegionSpecifier(RegionSpecifierType.REGION_NAME, this.env<a name="line.177"></a>
+<span class="sourceLineNo">178</span>            .getRegionInfo().getRegionName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    bulkLoadHFileRequest.setRegion(region).setFsToken(request.getFsToken())<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        .setBulkToken(request.getBulkToken()).setAssignSeqNum(request.getAssignSeqNum())<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        .addAllFamilyPath(request.getFamilyPathList());<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    return bulkLoadHFileRequest.build();<a name="line.182"></a>
 <span class="sourceLineNo">183</span>  }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>}<a name="line.184"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  @Override<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  public Iterable&lt;Service&gt; getServices() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    return Collections.singleton(this);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>}<a name="line.189"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html
index 222b646..618c8a8 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html
@@ -323,21 +323,35 @@
 <span class="sourceLineNo">315</span>    hash = UNSET_HASH_VALUE;<a name="line.315"></a>
 <span class="sourceLineNo">316</span>  }<a name="line.316"></a>
 <span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>  /**<a name="line.318"></a>
-<span class="sourceLineNo">319</span>   * Bitwise comparison of each byte in the array. Unsigned comparison, not<a name="line.319"></a>
-<span class="sourceLineNo">320</span>   * paying attention to java's signed bytes.<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   */<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  @Override<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public int compareTo(ByteRange other) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    return Bytes.compareTo(bytes, offset, length, other.getBytes(), other.getOffset(),<a name="line.324"></a>
-<span class="sourceLineNo">325</span>        other.getLength());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  @Override<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  public String toString() {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    return Bytes.toStringBinary(bytes, offset, length);<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
-<span class="sourceLineNo">332</span>}<a name="line.332"></a>
+<span class="sourceLineNo">318</span>  @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  public boolean equals(Object obj) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    if (this == obj) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      return true;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    if (obj == null) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      return false;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    if (!(obj instanceof ByteRange)) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      return false;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    return compareTo((ByteRange) obj) == 0;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>  /**<a name="line.332"></a>
+<span class="sourceLineNo">333</span>   * Bitwise comparison of each byte in the array. Unsigned comparison, not<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   * paying attention to java's signed bytes.<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  public int compareTo(ByteRange other) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    return Bytes.compareTo(bytes, offset, length, other.getBytes(), other.getOffset(),<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        other.getLength());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  public String toString() {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    return Bytes.toStringBinary(bytes, offset, length);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>}<a name="line.346"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/util/JRubyFormat.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/JRubyFormat.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/JRubyFormat.html
index 514bcb2..e4cf2cc 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/JRubyFormat.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/JRubyFormat.html
@@ -38,126 +38,128 @@
 <span class="sourceLineNo">030</span>/**<a name="line.30"></a>
 <span class="sourceLineNo">031</span> * Utility class for converting objects to JRuby.<a name="line.31"></a>
 <span class="sourceLineNo">032</span> *<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * It handles null, Boolean, Number, String, byte[], List&lt;Object&gt;, Map&lt;String, Object&gt; structures.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> *<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * E.g.<a name="line.36"></a>
-<span class="sourceLineNo">037</span> * &lt;pre&gt;<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * Map&lt;String, Object&gt; map = new LinkedHashMap&lt;&gt;();<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * map.put("null", null);<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * map.put("boolean", true);<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * map.put("number", 1);<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * map.put("string", "str");<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * map.put("binary", new byte[] { 1, 2, 3 });<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * map.put("list", Lists.newArrayList(1, "2", true));<a name="line.44"></a>
-<span class="sourceLineNo">045</span> * &lt;/pre&gt;<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * &lt;/p&gt;<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *<a name="line.47"></a>
-<span class="sourceLineNo">048</span> * &lt;p&gt;<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * Calling {@link #print(Object)} method will result:<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * &lt;pre&gt;<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * { null =&gt; '', boolean =&gt; 'true', number =&gt; '1', string =&gt; 'str', binary =&gt; '010203', list =&gt; [ '1', '2', 'true' ] }<a name="line.51"></a>
-<span class="sourceLineNo">052</span> * &lt;/pre&gt;<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * &lt;/p&gt;<a name="line.53"></a>
-<span class="sourceLineNo">054</span> */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>@InterfaceAudience.Private<a name="line.55"></a>
-<span class="sourceLineNo">056</span>public final class JRubyFormat {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private static final Escaper escaper;<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  static {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    escaper = Escapers.builder()<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      .addEscape('\\', "\\\\")<a name="line.61"></a>
-<span class="sourceLineNo">062</span>      .addEscape('\'', "\\'")<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      .addEscape('\n', "\\n")<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      .addEscape('\r', "\\r")<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      .addEscape('\t', "\\t")<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      .addEscape('\f', "\\f")<a name="line.66"></a>
-<span class="sourceLineNo">067</span>      .build();<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>  private JRubyFormat() {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static String escape(Object object) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    if (object == null) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      return "";<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    } else {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      return escaper.escape(object.toString());<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><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  @SuppressWarnings({ "unchecked" })<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private static void appendJRuby(StringBuilder builder, Object object) {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    if (object == null) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      builder.append("''");<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    } else if (object instanceof List) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      builder.append("[");<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>      boolean first = true;<a name="line.88"></a>
+<span class="sourceLineNo">033</span> * It handles null, Boolean, Number, String, byte[], List&amp;lt;Object&gt;, Map&amp;lt;String, Object&gt;<a name="line.33"></a>
+<span class="sourceLineNo">034</span> *   structures.<a name="line.34"></a>
+<span class="sourceLineNo">035</span> *<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * &lt;p&gt;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * E.g.<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * &lt;pre&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * Map&amp;lt;String, Object&gt; map = new LinkedHashMap&amp;lt;&gt;();<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * map.put("null", null);<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * map.put("boolean", true);<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * map.put("number", 1);<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * map.put("string", "str");<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * map.put("binary", new byte[] { 1, 2, 3 });<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * map.put("list", Lists.newArrayList(1, "2", true));<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * &lt;/pre&gt;<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * &lt;/p&gt;<a name="line.47"></a>
+<span class="sourceLineNo">048</span> *<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * &lt;p&gt;<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * Calling {@link #print(Object)} method will result:<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * &lt;pre&gt;<a name="line.51"></a>
+<span class="sourceLineNo">052</span> * { null =&gt; '', boolean =&gt; 'true', number =&gt; '1', string =&gt; 'str',<a name="line.52"></a>
+<span class="sourceLineNo">053</span> *   binary =&gt; '010203', list =&gt; [ '1', '2', 'true' ] }<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * &lt;/pre&gt;<a name="line.54"></a>
+<span class="sourceLineNo">055</span> * &lt;/p&gt;<a name="line.55"></a>
+<span class="sourceLineNo">056</span> */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>@InterfaceAudience.Private<a name="line.57"></a>
+<span class="sourceLineNo">058</span>public final class JRubyFormat {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private static final Escaper escaper;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  static {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    escaper = Escapers.builder()<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      .addEscape('\\', "\\\\")<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      .addEscape('\'', "\\'")<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      .addEscape('\n', "\\n")<a name="line.65"></a>
+<span class="sourceLineNo">066</span>      .addEscape('\r', "\\r")<a name="line.66"></a>
+<span class="sourceLineNo">067</span>      .addEscape('\t', "\\t")<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      .addEscape('\f', "\\f")<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      .build();<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>  private JRubyFormat() {<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>  private static String escape(Object object) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    if (object == null) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      return "";<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    } else {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      return escaper.escape(object.toString());<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  @SuppressWarnings({ "unchecked" })<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private static void appendJRuby(StringBuilder builder, Object object) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    if (object == null) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      builder.append("''");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    } else if (object instanceof List) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      builder.append("[");<a name="line.88"></a>
 <span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>      for (Object element: (List&lt;Object&gt;)object) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        if (first) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>          first = false;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>          builder.append(" ");<a name="line.93"></a>
-<span class="sourceLineNo">094</span>        } else {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>          builder.append(", ");<a name="line.95"></a>
-<span class="sourceLineNo">096</span>        }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>        appendJRuby(builder, element);<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>      if (!first) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>        builder.append(" ");<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      }<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>      builder.append("]");<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    } else if (object instanceof Map) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      builder.append("{");<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>      boolean first = true;<a name="line.109"></a>
+<span class="sourceLineNo">090</span>      boolean first = true;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>      for (Object element: (List&lt;Object&gt;)object) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        if (first) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>          first = false;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>          builder.append(" ");<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        } else {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>          builder.append(", ");<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>        appendJRuby(builder, element);<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>      if (!first) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        builder.append(" ");<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>      builder.append("]");<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    } else if (object instanceof Map) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      builder.append("{");<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>      for (Entry&lt;String, Object&gt; entry: ((Map&lt;String, Object&gt;)object).entrySet()) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        if (first) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>          first = false;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>          builder.append(" ");<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        } else {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>          builder.append(", ");<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>        String key = entry.getKey();<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        String escapedKey = escape(key);<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>        if (key.equals(escapedKey)) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>          builder.append(key);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        } else {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>          builder.append("'").append(escapedKey).append("'");<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>        builder.append(" =&gt; ");<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        appendJRuby(builder, entry.getValue());<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>      if (!first) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        builder.append(" ");<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>      builder.append("}");<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    } else if (object instanceof byte[]) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      String byteString = Bytes.toHex((byte[])object);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      builder.append("'").append(escape(byteString)).append("'");<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    } else {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      builder.append("'").append(escape(object)).append("'");<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  public static String print(Object object) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    StringBuilder builder = new StringBuilder();<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>    appendJRuby(builder, object);<a name="line.148"></a>
+<span class="sourceLineNo">111</span>      boolean first = true;<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>      for (Entry&lt;String, Object&gt; entry: ((Map&lt;String, Object&gt;)object).entrySet()) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        if (first) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>          first = false;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>          builder.append(" ");<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>          builder.append(", ");<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>        String key = entry.getKey();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        String escapedKey = escape(key);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        if (key.equals(escapedKey)) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>          builder.append(key);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        } else {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>          builder.append("'").append(escapedKey).append("'");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>        builder.append(" =&gt; ");<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        appendJRuby(builder, entry.getValue());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>      if (!first) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        builder.append(" ");<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>      builder.append("}");<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    } else if (object instanceof byte[]) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      String byteString = Bytes.toHex((byte[])object);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      builder.append("'").append(escape(byteString)).append("'");<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    } else {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      builder.append("'").append(escape(object)).append("'");<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  public static String print(Object object) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    StringBuilder builder = new StringBuilder();<a name="line.148"></a>
 <span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span>    return builder.toString();<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">150</span>    appendJRuby(builder, object);<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    return builder.toString();<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html
index 783325b..d53276c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/OrderedBytes.html
@@ -347,7 +347,7 @@
 <span class="sourceLineNo">339</span><a name="line.339"></a>
 <span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
 <span class="sourceLineNo">341</span>   * Perform unsigned comparison between two long values. Conforms to the same interface as<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * {@link org.apache.hadoop.hbase.CellComparator#COMPARATOR#compare(Object, Object)}.<a name="line.342"></a>
+<span class="sourceLineNo">342</span>   * {@link org.apache.hadoop.hbase.CellComparator}.<a name="line.342"></a>
 <span class="sourceLineNo">343</span>   */<a name="line.343"></a>
 <span class="sourceLineNo">344</span>  private static int unsignedCmp(long x1, long x2) {<a name="line.344"></a>
 <span class="sourceLineNo">345</span>    int cmp;<a name="line.345"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/downloads.html
----------------------------------------------------------------------
diff --git a/downloads.html b/downloads.html
index 3f2b2f9..8af7e94 100644
--- a/downloads.html
+++ b/downloads.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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase Downloads</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -366,7 +366,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index fc3f15d..7c3915a 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -331,7 +331,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index b2933a6..a0b345d 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -411,7 +411,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 671c8ab..1aa18e5 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -291,7 +291,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 966253e..0573529 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -288,7 +288,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 31df9de..3af9dbf 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -491,7 +491,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 58ee567..4b7208b 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -341,7 +341,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index b9468ce..c659529 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -459,7 +459,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index f1b128b..7cfd2b5 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -440,7 +440,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 2412681..43a1c2a 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -290,8 +290,8 @@
 <td>2.6</td></tr>
 <tr class="a">
 <td>org.apache.maven.plugins</td>
-<td><a class="externalLink" href="http://maven.apache.org/plugins/maven-checkstyle-plugin/">maven-checkstyle-plugin</a></td>
-<td>2.17</td></tr>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-checkstyle-plugin/">maven-checkstyle-plugin</a></td>
+<td>3.0.0</td></tr>
 <tr class="b">
 <td>org.apache.maven.plugins</td>
 <td><a class="externalLink" href="http://maven.apache.org/plugins/maven-clean-plugin/">maven-clean-plugin</a></td>
@@ -440,7 +440,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 2fcde3a..8cd23f3 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -286,8 +286,8 @@
 <td>1.8</td></tr>
 <tr class="b">
 <td>org.apache.maven.plugins</td>
-<td><a class="externalLink" href="http://maven.apache.org/plugins/maven-checkstyle-plugin/">maven-checkstyle-plugin</a></td>
-<td>2.17</td></tr>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-checkstyle-plugin/">maven-checkstyle-plugin</a></td>
+<td>3.0.0</td></tr>
 <tr class="a">
 <td>org.apache.maven.plugins</td>
 <td><a class="externalLink" href="http://maven.apache.org/plugins/maven-clean-plugin/">maven-clean-plugin</a></td>
@@ -349,8 +349,8 @@
 <th>Version</th></tr>
 <tr class="b">
 <td>org.apache.maven.plugins</td>
-<td><a class="externalLink" href="http://maven.apache.org/plugins/maven-checkstyle-plugin/">maven-checkstyle-plugin</a></td>
-<td>2.17</td></tr>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-checkstyle-plugin/">maven-checkstyle-plugin</a></td>
+<td>3.0.0</td></tr>
 <tr class="a">
 <td>org.apache.maven.plugins</td>
 <td><a class="externalLink" href="https://maven.apache.org/plugins/maven-javadoc-plugin/">maven-javadoc-plugin</a></td>
@@ -375,7 +375,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index ffe61d0..99cea35 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -769,7 +769,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index ed1d907..a0ceb56 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -335,7 +335,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 25b0421..a2f0342 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -305,7 +305,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 05c664b..8419882 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -331,7 +331,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 4596ad1..c2ae3e7 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 7a6ef6c..5d28528 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -303,7 +303,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 953d16e..b0ed67d 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -331,7 +331,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 39ff7bb..9cd7806 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -299,7 +299,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 86a76b4..ecf56b0 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -333,7 +333,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index b2b56f5..1f2e084 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -520,7 +520,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index b21f9ee..d5c268a 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -730,7 +730,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html b/testapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html
index 80cdb51..cfee65b 100644
--- a/testapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html
+++ b/testapidocs/org/apache/hadoop/hbase/HBaseTestingUtility.html
@@ -2257,7 +2257,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2282,7 +2282,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2306,7 +2306,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2383,7 +2383,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2402,7 +2402,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2424,7 +2424,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniDFSCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniDFSCluster--"><code>shutdownMiniDFSCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2451,7 +2451,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2489,7 +2489,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2509,7 +2509,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2566,7 +2566,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2630,7 +2630,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#shutdownMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#shutdownMiniCluster--"><code>shutdownMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2747,7 +2747,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#startMiniCluster()}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#startMiniCluster--"><code>startMiniCluster()</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -2801,7 +2801,7 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>#startMiniCluster(int)}</code></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html#startMiniCluster-int-"><code>startMiniCluster(int)</code></a></dd>
 </dl>
 </li>
 </ul>
@@ -3647,10 +3647,11 @@ public&nbsp;<a href="../../../../../apidocs/org/apache/hadoop/hbase/HTableDescri
 <div class="block">Create an HRegion that writes to the local tmp dirs</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>desc</code> - </dd>
-<dd><code>startKey</code> - </dd>
-<dd><code>endKey</code> - </dd>
+<dd><code>desc</code> - a table descriptor indicating which table the region belongs to</dd>
+<dd><code>startKey</code> - the start boundary of the region</dd>
+<dd><code>endKey</code> - the end boundary of the region</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>a region that writes to local dir for testing</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>


[47/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index d63e982..9f445b2 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2018 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 3616,
-             Errors: 15858,
+      <title>File: 3619,
+             Errors: 16476,
              Warnings: 0,
              Infos: 0
       </title>
@@ -111,7 +111,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  26
                 </td>
               </tr>
                           <tr>
@@ -265,7 +265,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  11
                 </td>
               </tr>
                           <tr>
@@ -867,7 +867,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -1054,6 +1054,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TableDescriptorUtils.java">org/apache/hadoop/hbase/client/TableDescriptorUtils.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.client.TestCIGetRpcTimeout.java">org/apache/hadoop/hbase/client/TestCIGetRpcTimeout.java</a>
                 </td>
                 <td>
@@ -1161,7 +1175,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  6
                 </td>
               </tr>
                           <tr>
@@ -1231,7 +1245,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -1399,7 +1413,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  5
                 </td>
               </tr>
                           <tr>
@@ -1763,7 +1777,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  6
                 </td>
               </tr>
                           <tr>
@@ -1903,7 +1917,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  10
                 </td>
               </tr>
                           <tr>
@@ -2547,7 +2561,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  11
                 </td>
               </tr>
                           <tr>
@@ -2561,7 +2575,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  13
                 </td>
               </tr>
                           <tr>
@@ -2617,7 +2631,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -2743,7 +2757,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  17
+                  16
                 </td>
               </tr>
                           <tr>
@@ -2813,7 +2827,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  24
+                  25
                 </td>
               </tr>
                           <tr>
@@ -2869,7 +2883,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  7
                 </td>
               </tr>
                           <tr>
@@ -2939,7 +2953,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  10
                 </td>
               </tr>
                           <tr>
@@ -3121,7 +3135,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -3345,7 +3359,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  7
                 </td>
               </tr>
                           <tr>
@@ -3835,7 +3849,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  8
                 </td>
               </tr>
                           <tr>
@@ -4059,7 +4073,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  9
                 </td>
               </tr>
                           <tr>
@@ -4157,7 +4171,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  11
                 </td>
               </tr>
                           <tr>
@@ -4171,7 +4185,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  2
                 </td>
               </tr>
                           <tr>
@@ -4437,7 +4451,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  94
+                  98
                 </td>
               </tr>
                           <tr>
@@ -4493,7 +4507,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -4619,7 +4633,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  37
+                  38
                 </td>
               </tr>
                           <tr>
@@ -4941,7 +4955,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  11
                 </td>
               </tr>
                           <tr>
@@ -5025,7 +5039,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  12
                 </td>
               </tr>
                           <tr>
@@ -5081,7 +5095,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -5137,7 +5151,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  16
                 </td>
               </tr>
                           <tr>
@@ -5291,7 +5305,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  7
                 </td>
               </tr>
                           <tr>
@@ -5655,7 +5669,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  6
                 </td>
               </tr>
                           <tr>
@@ -5683,7 +5697,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  15
+                  22
                 </td>
               </tr>
                           <tr>
@@ -5725,7 +5739,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  55
+                  57
                 </td>
               </tr>
                           <tr>
@@ -5921,7 +5935,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  7
                 </td>
               </tr>
                           <tr>
@@ -6453,7 +6467,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -6467,7 +6481,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  13
                 </td>
               </tr>
                           <tr>
@@ -6551,7 +6565,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  9
                 </td>
               </tr>
                           <tr>
@@ -6621,7 +6635,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  6
                 </td>
               </tr>
                           <tr>
@@ -6649,7 +6663,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  24
+                  27
                 </td>
               </tr>
                           <tr>
@@ -6747,7 +6761,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  21
+                  23
                 </td>
               </tr>
                           <tr>
@@ -7237,7 +7251,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  13
                 </td>
               </tr>
                           <tr>
@@ -7363,7 +7377,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  9
                 </td>
               </tr>
                           <tr>
@@ -7573,7 +7587,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -7797,7 +7811,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  16
+                  21
                 </td>
               </tr>
                           <tr>
@@ -7895,7 +7909,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -7937,7 +7951,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  9
                 </td>
               </tr>
                           <tr>
@@ -8161,7 +8175,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  12
                 </td>
               </tr>
                           <tr>
@@ -8203,7 +8217,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  10
                 </td>
               </tr>
                           <tr>
@@ -8217,7 +8231,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  10
                 </td>
               </tr>
                           <tr>
@@ -8245,7 +8259,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  10
                 </td>
               </tr>
                           <tr>
@@ -8385,7 +8399,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -8441,7 +8455,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -8483,7 +8497,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  25
+                  30
                 </td>
               </tr>
                           <tr>
@@ -8665,7 +8679,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  6
                 </td>
               </tr>
                           <tr>
@@ -8679,7 +8693,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  13
+                  14
                 </td>
               </tr>
                           <tr>
@@ -8721,7 +8735,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  8
                 </td>
               </tr>
                           <tr>
@@ -8735,7 +8749,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  12
                 </td>
               </tr>
                           <tr>
@@ -8889,7 +8903,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  4
                 </td>
               </tr>
                           <tr>
@@ -9029,7 +9043,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  21
+                  25
                 </td>
               </tr>
                           <tr>
@@ -9071,7 +9085,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  5
                 </td>
               </tr>
                           <tr>
@@ -9211,7 +9225,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  10
                 </td>
               </tr>
                           <tr>
@@ -9813,7 +9827,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  26
+                  41
                 </td>
               </tr>
                           <tr>
@@ -9911,7 +9925,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  6
                 </td>
               </tr>
                           <tr>
@@ -10569,7 +10583,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -10667,7 +10681,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  7
                 </td>
               </tr>
                           <tr>
@@ -11017,7 +11031,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  10
                 </td>
               </tr>
                           <tr>
@@ -11367,7 +11381,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  9
                 </td>
               </tr>
                           <tr>
@@ -11871,7 +11885,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  22
+                  23
                 </td>
               </tr>
                           <tr>
@@ -12291,7 +12305,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -12417,7 +12431,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  348
+                  352
                 </td>
               </tr>
                           <tr>
@@ -12473,7 +12487,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  17
+                  20
                 </td>
               </tr>
                           <tr>
@@ -12893,7 +12907,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  7
                 </td>
               </tr>
                           <tr>
@@ -13047,7 +13061,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  6
                 </td>
               </tr>
                           <tr>
@@ -13285,7 +13299,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  9
                 </td>
               </tr>
                           <tr>
@@ -13397,7 +13411,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -14027,7 +14041,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  87
+                  88
                 </td>
               </tr>
                           <tr>
@@ -14223,7 +14237,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  11
                 </td>
               </tr>
                           <tr>
@@ -14629,7 +14643,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -14741,7 +14755,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  18
+                  19
                 </td>
               </tr>
                           <tr>
@@ -14811,7 +14825,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -15007,7 +15021,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  31
+                  32
                 </td>
               </tr>
                           <tr>
@@ -15091,7 +15105,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  9
                 </td>
               </tr>
                           <tr>
@@ -15203,7 +15217,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  10
                 </td>
               </tr>
                           <tr>
@@ -15735,7 +15749,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  3
                 </td>
               </tr>
                           <tr>
@@ -15861,7 +15875,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  6
                 </td>
               </tr>
                           <tr>
@@ -16001,7 +16015,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  8
                 </td>
               </tr>
                           <tr>
@@ -16015,7 +16029,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  35
+                  38
                 </td>
               </tr>
                           <tr>
@@ -16547,7 +16561,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  29
+                  27
                 </td>
               </tr>
                           <tr>
@@ -16743,7 +16757,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -16967,7 +16981,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  39
+                  38
                 </td>
               </tr>
                           <tr>
@@ -17331,7 +17345,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  181
+                  193
                 </td>
               </tr>
                           <tr>
@@ -17569,7 +17583,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  30
+                  34
                 </td>
               </tr>
                           <tr>
@@ -17681,7 +17695,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -17723,7 +17737,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  15
+                  16
                 </td>
               </tr>
                           <tr>
@@ -17765,7 +17779,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  21
+                  22
                 </td>
               </tr>
                           <tr>
@@ -18213,7 +18227,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  14
+                  16
                 </td>
               </tr>
                           <tr>
@@ -18437,7 +18451,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  14
                 </td>
               </tr>
                           <tr>
@@ -18535,7 +18549,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -18899,7 +18913,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  3
                 </td>
               </tr>
                           <tr>
@@ -19123,7 +19137,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  41
+                  39
                 </td>
               </tr>
                           <tr>
@@ -19235,7 +19249,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  65
+                  66
                 </td>
               </tr>
                           <tr>
@@ -19338,6 +19352,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestTableDescriptorUtils.java">org/apache/hadoop/hbase/client/TestTableDescriptorUtils.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.regionserver.querymatcher.DeleteTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.java</a>
                 </td>
                 <td>
@@ -19655,7 +19683,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  13
+                  10
                 </td>
               </tr>
                           <tr>
@@ -19767,7 +19795,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  14
                 </td>
               </tr>
                           <tr>
@@ -19781,7 +19809,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  11
                 </td>
               </tr>
                           <tr>
@@ -19795,7 +19823,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  4
                 </td>
               </tr>
                           <tr>
@@ -19963,7 +19991,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -20047,7 +20075,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  38
+                  24
                 </td>
               </tr>
                           <tr>
@@ -20663,7 +20691,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -20873,7 +20901,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -21293,7 +21321,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  26
+                  25
                 </td>
               </tr>
                           <tr>
@@ -21321,7 +21349,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  0
                 </td>
               </tr>
                           <tr>
@@ -21671,7 +21699,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -21839,7 +21867,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  7
                 </td>
               </tr>
                           <tr>
@@ -22063,7 +22091,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  21
+                  22
                 </td>
               </tr>
                           <tr>
@@ -22217,7 +22245,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  17
+                  18
                 </td>
               </tr>
                           <tr>
@@ -22329,7 +22357,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -22441,7 +22469,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  5
                 </td>
               </tr>
                           <tr>
@@ -22469,7 +22497,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  3
                 </td>
               </tr>
                           <tr>
@@ -22875,7 +22903,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  6
                 </td>
               </tr>
                           <tr>
@@ -23057,7 +23085,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  25
+                  22
                 </td>
               </tr>
                           <tr>
@@ -23085,7 +23113,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  98
+                  107
                 </td>
               </tr>
                           <tr>
@@ -23183,7 +23211,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  25
+                  28
                 </td>
               </tr>
                           <tr>
@@ -23239,7 +23267,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -23421,7 +23449,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  9
                 </td>
               </tr>
                           <tr>
@@ -23449,7 +23477,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  18
+                  25
                 </td>
               </tr>
                           <tr>
@@ -23771,7 +23799,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  5
                 </td>
               </tr>
                           <tr>
@@ -23981,7 +24009,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  0
                 </td>
               </tr>
                           <tr>
@@ -24093,7 +24121,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -24639,7 +24667,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -25087,7 +25115,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  20
+                  21
                 </td>
               </tr>
                           <tr>
@@ -25185,7 +25213,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  2
                 </td>
               </tr>
                           <tr>
@@ -25297,7 +25325,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  24
+                  32
                 </td>
               </tr>
                           <tr>
@@ -26025,7 +26053,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  19
+                  25
                 </td>
               </tr>
                           <tr>
@@ -26543,7 +26571,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  0
                 </td>
               </tr>
                           <tr>
@@ -26711,7 +26739,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  71
+                  100
                 </td>
               </tr>
                           <tr>
@@ -26767,7 +26795,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -26977,7 +27005,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  12
                 </td>
               </tr>
                           <tr>
@@ -27173,7 +27201,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  15
                 </td>
               </tr>
                           <tr>
@@ -27355,7 +27383,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -27677,7 +27705,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -27943,7 +27971,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -28167,7 +28195,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  8
                 </td>
               </tr>
                           <tr>
@@ -28545,7 +28573,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  61
+                  80
                 </td>
               </tr>
                           <tr>
@@ -28755,7 +28783,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  15
+                  16
                 </td>
               </tr>
                           <tr>
@@ -29287,7 +29315,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  13
                 </td>
               </tr>
                           <tr>
@@ -29301,7 +29329,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  13
                 </td>
               </tr>
                           <tr>
@@ -29595,7 +29623,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  6
                 </td>
               </tr>
                           <tr>
@@ -29651,7 +29679,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  6
                 </td>
               </tr>
                           <tr>
@@ -29749,7 +29777,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  7
                 </td>
               </tr>
                           <tr>
@@ -30057,7 +30085,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  13
+                  14
                 </td>
               </tr>
                           <tr>
@@ -30071,7 +30099,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  9
                 </td>
               </tr>
                           <tr>
@@ -30169,7 +30197,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  5
                 </td>
               </tr>
                           <tr>
@@ -30337,7 +30365,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  13
+                  14
                 </td>
               </tr>
                           <tr>
@@ -30491,7 +30519,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  259
+                  278
                 </td>
               </tr>
                           <tr>
@@ -30589,7 +30617,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  22
+                  36
                 </td>
               </tr>
                           <tr>
@@ -30855,7 +30883,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  55
+                  59
                 </td>
               </tr>
                           <tr>
@@ -31303,7 +31331,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  21
+                  24
                 </td>
               </tr>
                           <tr>
@@ -31499,7 +31527,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  51
+                  52
                 </td>
               </tr>
                           <tr>
@@ -31667,7 +31695,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -32003,7 +32031,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  6
                 </td>
               </tr>
                           <tr>
@@ -32129,7 +32157,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -32325,7 +32353,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  17
+                  19
                 </td>
               </tr>
                           <tr>
@@ -32437,7 +32465,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  7
                 </td>
               </tr>
                           <tr>
@@ -32675,7 +32703,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  5
                 </td>
               </tr>
                           <tr>
@@ -32843,7 +32871,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  3
                 </td>
               </tr>
                           <tr>
@@ -32969,7 +32997,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  8
                 </td>
               </tr>
                           <tr>
@@ -33137,7 +33165,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -33543,7 +33571,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  4
                 </td>
               </tr>
                           <tr>
@@ -33655,7 +33683,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  11
                 </td>
               </tr>
                           <tr>
@@ -33991,7 +34019,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  5
                 </td>
               </tr>
                           <tr>
@@ -34500,6 +34528,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.master.procedure.ReopenTableRegionsProcedure.java">org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.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.quotas.QuotaSettingsFactory.java">org/apache/hadoop/hbase/quotas/QuotaSettingsFactory.java</a>
                 </td>
                 <td>
@@ -34551,7 +34593,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  14
+                  15
                 </td>
               </tr>
                           <tr>
@@ -34649,7 +34691,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  12
                 </td>
               </tr>
                           <tr>
@@ -34691,7 +34733,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  31
+                  29
                 </td>
               </tr>
                           <tr>
@@ -34831,7 +34873,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -34873,7 +34915,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  21
+                  25
                 </td>
               </tr>
                           <tr>
@@ -34901,7 +34943,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  21
+                  22
                 </td>
               </tr>
                           <tr>
@@ -34985,7 +35027,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  4
                 </td>
               </tr>
                           <tr>
@@ -35069,7 +35111,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  38
+                  40
                 </td>
               </tr>
                           <tr>
@@ -35251,7 +35293,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  9
                 </td>
               </tr>
                           <tr>
@@ -35461,7 +35503,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -35573,7 +35615,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  14
+                  16
                 </td>
               </tr>
                           <tr>
@@ -35825,7 +35867,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  7
                 </td>
               </tr>
                           <tr>
@@ -36105,7 +36147,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  4
                 </td>
               </tr>
                           <tr>
@@ -36147,7 +36189,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -36189,7 +36231,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  15
+                  22
                 </td>
               </tr>
                           <tr>
@@ -36777,7 +36819,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  21
+                  20
                 </td>
               </tr>
                           <tr>
@@ -36805,7 +36847,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  3
                 </td>
               </tr>
                           <tr>
@@ -37449,7 +37491,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  5
                 </td>
               </tr>
                           <tr>
@@ -37491,7 +37533,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  12
                 </td>
               </tr>
                           <tr>
@@ -37827,7 +37869,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  33
+                  41
                 </td>
               </tr>
                           <tr>
@@ -37883,7 +37925,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  5
                 </td>
               </tr>
                           <tr>
@@ -38009,7 +38051,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  6
                 </td>
               </tr>
                           <tr>
@@ -38037,7 +38079,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  26
+                  28
                 </td>
               </tr>
                           <tr>
@@ -38135,7 +38177,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  5
                 </td>
               </tr>
                           <tr>
@@ -38289,7 +38331,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  6
                 </td>
               </tr>
                           <tr>
@@ -38359,7 +38401,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  39
+                  40
                 </td>
               </tr>
                           <tr>
@@ -38415,7 +38457,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  6
                 </td>
               </tr>
                           <tr>
@@ -38471,7 +38513,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  30
+                  37
                 </td>
               </tr>
                           <tr>
@@ -38779,7 +38821,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  26
+                  29
                 </td>
               </tr>
                           <tr>
@@ -38933,7 +38975,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  55
+                  66
                 </td>
               </tr>
                           <tr>
@@ -39143,7 +39185,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  10
                 </td>
               </tr>
                           <tr>
@@ -39255,7 +39297,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  2
                 </td>
               </tr>
                           <tr>
@@ -39395,7 +39437,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -39409,7 +39451,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  10
                 </td>
               </tr>
                           <tr>
@@ -39423,7 +39465,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -39647,7 +39689,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  10
                 </td>
               </tr>
                           <tr>
@@ -39941,7 +39983,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  32
+                  35
                 </td>
               </tr>
                           <tr>
@@ -40095,7 +40137,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  12
                 </td>
               </tr>
                           <tr>
@@ -40179,7 +40221,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  2
                 </td>
               </tr>
                           <tr>
@@ -40305,7 +40347,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -40445,7 +40487,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  14
+                  15
                 </td>
               </tr>
                           <tr>
@@ -40515,7 +40557,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  162
+                  171
                 </td>
               </tr>
                           <tr>
@@ -40669,7 +40711,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  17
+                  18
                 </td>
               </tr>
                           <tr>
@@ -40921,7 +40963,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  3
                 </td>
               </tr>
                           <tr>
@@ -41117,7 +41159,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  2
                 </td>
               </tr>
                           <tr>
@@ -41579,7 +41621,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  5
                 </td>
               </tr>
                           <tr>
@@ -41663,7 +41705,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -41691,7 +41733,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  63
+                  66
                 </td>
               </tr>
                           <tr>
@@ -42405,7 +42447,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  25
+                  26
                 </td>
               </tr>
                           <tr>
@@ -42517,7 +42559,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -42559,7 +42601,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  6
                 </td>
               </tr>
                           <tr>
@@ -42881,7 +42923,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  45
+                  47
                 </td>
               </tr>
                           <tr>
@@ -43119,7 +43161,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -43329,7 +43371,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  22
+                  23
                 </td>
               </tr>
                           <tr>
@@ -43483,7 +43525,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -43735,7 +43777,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  13
                 </td>
               </tr>
                           <tr>
@@ -43763,7 +43805,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  46
+                  47
                 </td>
               </tr>
                           <tr>
@@ -43889,7 +43931,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -43959,7 +44001,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  25
+                  26
                 </td>
               </tr>
                           <tr>
@@ -44337,7 +44379,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  0
                 </td>
               </tr>
                           <tr>
@@ -44715,7 +44757,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  36
+                  38
                 </td>
               </tr>
                           <tr>
@@ -44855,7 +44897,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -44953,7 +44995,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  20
+                  24
                 </td>
               </tr>
                           <tr>
@@ -45247,7 +45289,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  33
+                  37
                 </td>
               </tr>
                           <tr>
@@ -45457,7 +45499,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  13
+                  17
                 </td>
               </tr>
                           <tr>
@@ -45681,7 +45723,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  18
+                  20
                 </td>
               </tr>
                           <tr>
@@ -45765,7 +45807,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  12
                 </td>
               </tr>
                           <tr>
@@ -46087,7 +46129,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  5
                 </td>
               </tr>
                           <tr>
@@ -46339,7 +46381,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  3
                 </td>
               </tr>
                           <tr>
@@ -46367,7 +46409,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  85
+                  89
                 </td>
               </tr>
                           <tr>
@@ -46661,7 +46703,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  25
+                  27
                 </td>
               </tr>
                           <tr>
@@ -46689,7 +46731,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -47571,7 +47613,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  11
                 </td>
               </tr>
                           <tr>
@@ -47627,7 +47669,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  39
+                  41
                 </td>
               </tr>
                           <tr>
@@ -47823,7 +47865,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  205
+                  220
                 </td>
               </tr>
                           <tr>
@@ -47991,7 +48033,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  6
                 </td>
               </tr>
                           <tr>
@@ -48215,7 +48257,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  2
                 </td>
               </tr>
                           <tr>
@@ -48313,7 +48355,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>
@@ -48453,7 +48495,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  7
                 </td>
               </tr>
                           <tr>
@@ -48495,7 +48537,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  40
+                  42
                 </td>
               </tr>
                           <tr>
@@ -48761,7 +48803,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  12
                 </td>
               </tr>
                           <tr>
@@ -48957,7 +48999,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -49097,7 +49139,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  44
+                  51
                 </td>
               </tr>
                           <tr>
@@ -49237,7 +49279,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  99
+                  104
                 </td>
               </tr>
                           <tr>
@@ -49405,7 +49447,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  2
                 </td>
               </tr>
                           <tr>
@@ -49433,7 +49475,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  11
                 </td>
               </tr>
                           <tr>
@@ -49699,7 +49741,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  72
+                  96
                 </td>
               </tr>
                           <tr>
@@ -49741,7 +49783,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  4
                 </td>
               </tr>
                           <tr>
@@ -49867,7 +49909,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  3
                 </td>
               </tr>
                           <tr>
@@ -49895,7 +49937,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -49979,7 +50021,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  20
+                  21
                 </td>
               </tr>
                           <tr>
@@ -50175,7 +50217,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  106
+                  115
                 </td>
               </tr>
                           <tr>
@@ -50231,7 +50273,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  112
+                  114
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 4dd8a8f..c427ffe 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -375,7 +375,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: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 262a570..90adb98 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -440,7 +440,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 5c21a98..8a327a5 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -1105,7 +1105,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 4f83b9f..dde6cb9 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -313,7 +313,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 318a6e9..3b0a958 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="20180529" />
+    <meta name="Date-Revision-yyyymmdd" content="20180530" />
     <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" />
@@ -794,9 +794,9 @@
 <tr class="a">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
-<td>9.1.17.0</td>
+<td>9.1.13.0</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL-2.0</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL-2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v20.html">EPL-2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
 <tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
@@ -969,7 +969,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-05-29</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-05-30</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index 3ac1044..fcfab19 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -2110,6 +2110,7 @@
 <li><a href="org/apache/hadoop/hbase/ipc/RemoteWithExtrasException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RemoteWithExtrasException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RemoteWithExtrasException.ClassLoaderHolder.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RemoteWithExtrasException.ClassLoaderHolder</a></li>
 <li><a href="org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html" title="class in org.apache.hadoop.hbase.master.replication" target="classFrame">RemovePeerProcedure</a></li>
+<li><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">ReopenTableRegionsProcedure</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/regionserver/Replication.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">Replication</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/regionserver/Replication.ReplicationStatisticsTask.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">Replication.ReplicationStatisticsTask</a></li>
 <li><a href="org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html" title="class in org.apache.hadoop.hbase.client.replication" target="classFrame">ReplicationAdmin</a></li>
@@ -2658,6 +2659,8 @@
 <li><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorBuilder</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorBuilder.ModifyableTableDescriptor</a></li>
 <li><a href="org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase" target="classFrame"><span class="interfaceName">TableDescriptors</span></a></li>
+<li><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorUtils</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorUtils.TableDescriptorDelta</a></li>
 <li><a href="org/apache/hadoop/hbase/TableExistsException.html" title="class in org.apache.hadoop.hbase" target="classFrame">TableExistsException</a></li>
 <li><a href="org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.html" title="class in org.apache.hadoop.hbase.backup.example" target="classFrame">TableHFileArchiveTracker</a></li>
 <li><a href="org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase" target="classFrame">TableInfoMissingException</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index e91abdd..31fafbf 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -2110,6 +2110,7 @@
 <li><a href="org/apache/hadoop/hbase/ipc/RemoteWithExtrasException.html" title="class in org.apache.hadoop.hbase.ipc">RemoteWithExtrasException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RemoteWithExtrasException.ClassLoaderHolder.html" title="class in org.apache.hadoop.hbase.ipc">RemoteWithExtrasException.ClassLoaderHolder</a></li>
 <li><a href="org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html" title="class in org.apache.hadoop.hbase.master.replication">RemovePeerProcedure</a></li>
+<li><a href="org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/regionserver/Replication.html" title="class in org.apache.hadoop.hbase.replication.regionserver">Replication</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/regionserver/Replication.ReplicationStatisticsTask.html" title="class in org.apache.hadoop.hbase.replication.regionserver">Replication.ReplicationStatisticsTask</a></li>
 <li><a href="org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html" title="class in org.apache.hadoop.hbase.client.replication">ReplicationAdmin</a></li>
@@ -2658,6 +2659,8 @@
 <li><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder.ModifyableTableDescriptor</a></li>
 <li><a href="org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase"><span class="interfaceName">TableDescriptors</span></a></li>
+<li><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></li>
 <li><a href="org/apache/hadoop/hbase/TableExistsException.html" title="class in org.apache.hadoop.hbase">TableExistsException</a></li>
 <li><a href="org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.html" title="class in org.apache.hadoop.hbase.backup.example">TableHFileArchiveTracker</a></li>
 <li><a href="org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index a3a30a2..87aefb5 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3768,21 +3768,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Tue May 29 14:39:26 UTC 2018"</code></td>
+<td class="colLast"><code>"Wed May 30 14:39:41 UTC 2018"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"42be553433775c5985f6c68f8178e51afb0a402e"</code></td>
+<td class="colLast"><code>"997747076d8ec0b4346d7cb99c4b0667a7c14905"</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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"7bba60c298c587d54706ccb554793a39"</code></td>
+<td class="colLast"><code>"32b36d4fceefb83ecf450c63e8222854"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">


[30/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/net/Address.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/net/Address.html b/devapidocs/src-html/org/apache/hadoop/hbase/net/Address.html
index c893aec..241c271 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/net/Address.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/net/Address.html
@@ -34,7 +34,7 @@
 <span class="sourceLineNo">026</span> * An immutable type to hold a hostname and port combo, like an Endpoint<a name="line.26"></a>
 <span class="sourceLineNo">027</span> * or java.net.InetSocketAddress (but without danger of our calling<a name="line.27"></a>
 <span class="sourceLineNo">028</span> * resolve -- we do NOT want a resolve happening every time we want<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * to hold a hostname and port combo). This class is also &lt;&lt;Comparable&gt;&gt;.<a name="line.29"></a>
+<span class="sourceLineNo">029</span> * to hold a hostname and port combo). This class is also {@link Comparable}<a name="line.29"></a>
 <span class="sourceLineNo">030</span> * &lt;p&gt;In implementation this class is a facade over Guava's {@link HostAndPort}.<a name="line.30"></a>
 <span class="sourceLineNo">031</span> * We cannot have Guava classes in our API hence this Type.<a name="line.31"></a>
 <span class="sourceLineNo">032</span> */<a name="line.32"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html
index 7654a0e..4ff5a79 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html
@@ -150,183 +150,188 @@
 <span class="sourceLineNo">142</span>   * Add a child procedure to execute<a name="line.142"></a>
 <span class="sourceLineNo">143</span>   * @param subProcedure the child procedure<a name="line.143"></a>
 <span class="sourceLineNo">144</span>   */<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  protected void addChildProcedure(Procedure&lt;TEnvironment&gt;... subProcedure) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    if (subProcedure == null) return;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    final int len = subProcedure.length;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    if (len == 0) return;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    if (subProcList == null) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      subProcList = new ArrayList&lt;&gt;(len);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    for (int i = 0; i &lt; len; ++i) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      Procedure&lt;TEnvironment&gt; proc = subProcedure[i];<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      if (!proc.hasOwner()) proc.setOwner(getOwner());<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      subProcList.add(proc);<a name="line.155"></a>
+<span class="sourceLineNo">145</span>  protected &lt;T extends Procedure&lt;TEnvironment&gt;&gt; void addChildProcedure(<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      @SuppressWarnings("unchecked") T... subProcedure) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    if (subProcedure == null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      return;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    final int len = subProcedure.length;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    if (len == 0) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      return;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    if (subProcList == null) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      subProcList = new ArrayList&lt;&gt;(len);<a name="line.155"></a>
 <span class="sourceLineNo">156</span>    }<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>  @Override<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  protected Procedure[] execute(final TEnvironment env)<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  throws ProcedureSuspendedException, ProcedureYieldException, InterruptedException {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    updateTimestamp();<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    try {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      failIfAborted();<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>      if (!hasMoreState() || isFailed()) return null;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      TState state = getCurrentState();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      if (stateCount == 0) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        setNextState(getStateId(state));<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>      if (LOG.isTraceEnabled()) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        LOG.trace(state  + " " + this + "; cycles=" + this.cycles);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      // Keep running count of cycles<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      if (getStateId(state) != this.previousState) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>        this.previousState = getStateId(state);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        this.cycles = 0;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      } else {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        this.cycles++;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>      LOG.trace("{}", toString());<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      stateFlow = executeFromState(env, state);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      if (!hasMoreState()) setNextState(EOF_STATE);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      if (subProcList != null &amp;&amp; !subProcList.isEmpty()) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        Procedure[] subProcedures = subProcList.toArray(new Procedure[subProcList.size()]);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        subProcList = null;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        return subProcedures;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      }<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      return (isWaiting() || isFailed() || !hasMoreState()) ? null : new Procedure[] {this};<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    } finally {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      updateTimestamp();<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  @Override<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  protected void rollback(final TEnvironment env)<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      throws IOException, InterruptedException {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    if (isEofState()) stateCount--;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    try {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      updateTimestamp();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      rollbackState(env, getCurrentState());<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      stateCount--;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    } finally {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      updateTimestamp();<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private boolean isEofState() {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    return stateCount &gt; 0 &amp;&amp; states[stateCount-1] == EOF_STATE;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  @Override<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  protected boolean abort(final TEnvironment env) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    LOG.debug("Abort requested for {}", this);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    if (hasMoreState()) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      aborted.set(true);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      return true;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    LOG.debug("Ignoring abort request on {}", this);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    return false;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /**<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * If procedure has more states then abort it otherwise procedure is finished and abort can be<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   * ignored.<a name="line.227"></a>
-<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final void failIfAborted() {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    if (aborted.get()) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (hasMoreState()) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        setAbortFailure(getClass().getSimpleName(), "abort requested");<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      } else {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        LOG.warn("Ignoring abort request on state='" + getCurrentState() + "' for " + this);<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>  }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * Used by the default implementation of abort() to know if the current state can be aborted<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * and rollback can be triggered.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  protected boolean isRollbackSupported(final TState state) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    return false;<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>  @Override<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  protected boolean isYieldAfterExecutionStep(final TEnvironment env) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    return isYieldBeforeExecuteFromState(env, getCurrentState());<a name="line.249"></a>
+<span class="sourceLineNo">157</span>    for (int i = 0; i &lt; len; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      Procedure&lt;TEnvironment&gt; proc = subProcedure[i];<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      if (!proc.hasOwner()) proc.setOwner(getOwner());<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      subProcList.add(proc);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<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>  @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  protected Procedure[] execute(final TEnvironment env)<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  throws ProcedureSuspendedException, ProcedureYieldException, InterruptedException {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    updateTimestamp();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    try {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      failIfAborted();<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>      if (!hasMoreState() || isFailed()) return null;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      TState state = getCurrentState();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      if (stateCount == 0) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        setNextState(getStateId(state));<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>      if (LOG.isTraceEnabled()) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        LOG.trace(state  + " " + this + "; cycles=" + this.cycles);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      // Keep running count of cycles<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      if (getStateId(state) != this.previousState) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        this.previousState = getStateId(state);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        this.cycles = 0;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      } else {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        this.cycles++;<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>      LOG.trace("{}", toString());<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      stateFlow = executeFromState(env, state);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      if (!hasMoreState()) setNextState(EOF_STATE);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      if (subProcList != null &amp;&amp; !subProcList.isEmpty()) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        Procedure[] subProcedures = subProcList.toArray(new Procedure[subProcList.size()]);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        subProcList = null;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        return subProcedures;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      return (isWaiting() || isFailed() || !hasMoreState()) ? null : new Procedure[] {this};<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } finally {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      updateTimestamp();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    }<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>  @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>  protected void rollback(final TEnvironment env)<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      throws IOException, InterruptedException {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    if (isEofState()) stateCount--;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    try {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      updateTimestamp();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      rollbackState(env, getCurrentState());<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      stateCount--;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } finally {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      updateTimestamp();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  private boolean isEofState() {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    return stateCount &gt; 0 &amp;&amp; states[stateCount-1] == EOF_STATE;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>  @Override<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  protected boolean abort(final TEnvironment env) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    LOG.debug("Abort requested for {}", this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    if (hasMoreState()) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      aborted.set(true);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      return true;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    LOG.debug("Ignoring abort request on {}", this);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return false;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>  /**<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * If procedure has more states then abort it otherwise procedure is finished and abort can be<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   * ignored.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  protected final void failIfAborted() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    if (aborted.get()) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      if (hasMoreState()) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        setAbortFailure(getClass().getSimpleName(), "abort requested");<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        LOG.warn("Ignoring abort request on state='" + getCurrentState() + "' for " + this);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * Used by the default implementation of abort() to know if the current state can be aborted<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * and rollback can be triggered.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected boolean isRollbackSupported(final TState state) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    return false;<a name="line.249"></a>
 <span class="sourceLineNo">250</span>  }<a name="line.250"></a>
 <span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  private boolean hasMoreState() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    return stateFlow != Flow.NO_MORE_STATE;<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>  protected TState getCurrentState() {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    return stateCount &gt; 0 ? getState(states[stateCount-1]) : getInitialState();<a name="line.257"></a>
-<span class="sourceLineNo">258</span>  }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  /**<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   * This method is used from test code as it cannot be assumed that state transition will happen<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   * sequentially. Some procedures may skip steps/ states, some may add intermediate steps in<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * future.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   */<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  @VisibleForTesting<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  public int getCurrentStateId() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    return getStateId(getCurrentState());<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>  /**<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * Set the next state for the procedure.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @param stateId the ordinal() of the state enum (or state id)<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private void setNextState(final int stateId) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    if (states == null || states.length == stateCount) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      int newCapacity = stateCount + 8;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      if (states != null) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        states = Arrays.copyOf(states, newCapacity);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      } else {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        states = new int[newCapacity];<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    states[stateCount++] = stateId;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span>  @Override<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  protected void toStringState(StringBuilder builder) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    super.toStringState(builder);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    if (!isFinished() &amp;&amp; !isEofState() &amp;&amp; getCurrentState() != null) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      builder.append(":").append(getCurrentState());<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  @Override<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  protected void serializeStateData(ProcedureStateSerializer serializer)<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throws IOException {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    StateMachineProcedureData.Builder data = StateMachineProcedureData.newBuilder();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    for (int i = 0; i &lt; stateCount; ++i) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      data.addState(states[i]);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    serializer.serialize(data.build());<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>  @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected void deserializeStateData(ProcedureStateSerializer serializer)<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      throws IOException {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    StateMachineProcedureData data = serializer.deserialize(StateMachineProcedureData.class);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    stateCount = data.getStateCount();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    if (stateCount &gt; 0) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      states = new int[stateCount];<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      for (int i = 0; i &lt; stateCount; ++i) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        states[i] = data.getState(i);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      }<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      if (isEofState()) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        stateFlow = Flow.NO_MORE_STATE;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    } else {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      states = null;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
-<span class="sourceLineNo">321</span>}<a name="line.321"></a>
+<span class="sourceLineNo">252</span>  @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  protected boolean isYieldAfterExecutionStep(final TEnvironment env) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    return isYieldBeforeExecuteFromState(env, getCurrentState());<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>  private boolean hasMoreState() {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    return stateFlow != Flow.NO_MORE_STATE;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  protected TState getCurrentState() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    return stateCount &gt; 0 ? getState(states[stateCount-1]) : getInitialState();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * This method is used from test code as it cannot be assumed that state transition will happen<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * sequentially. Some procedures may skip steps/ states, some may add intermediate steps in<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * future.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  public int getCurrentStateId() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    return getStateId(getCurrentState());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  }<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * Set the next state for the procedure.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   * @param stateId the ordinal() of the state enum (or state id)<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   */<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private void setNextState(final int stateId) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    if (states == null || states.length == stateCount) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      int newCapacity = stateCount + 8;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      if (states != null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        states = Arrays.copyOf(states, newCapacity);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      } else {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        states = new int[newCapacity];<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    states[stateCount++] = stateId;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>  @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  protected void toStringState(StringBuilder builder) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    super.toStringState(builder);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    if (!isFinished() &amp;&amp; !isEofState() &amp;&amp; getCurrentState() != null) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      builder.append(":").append(getCurrentState());<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>  @Override<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  protected void serializeStateData(ProcedureStateSerializer serializer)<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      throws IOException {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    StateMachineProcedureData.Builder data = StateMachineProcedureData.newBuilder();<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    for (int i = 0; i &lt; stateCount; ++i) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      data.addState(states[i]);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    serializer.serialize(data.build());<a name="line.306"></a>
+<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>  @Override<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  protected void deserializeStateData(ProcedureStateSerializer serializer)<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      throws IOException {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    StateMachineProcedureData data = serializer.deserialize(StateMachineProcedureData.class);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    stateCount = data.getStateCount();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (stateCount &gt; 0) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      states = new int[stateCount];<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      for (int i = 0; i &lt; stateCount; ++i) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        states[i] = data.getState(i);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      if (isEofState()) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        stateFlow = Flow.NO_MORE_STATE;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    } else {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      states = null;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
+<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>}<a name="line.326"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
index 7654a0e..4ff5a79 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
@@ -150,183 +150,188 @@
 <span class="sourceLineNo">142</span>   * Add a child procedure to execute<a name="line.142"></a>
 <span class="sourceLineNo">143</span>   * @param subProcedure the child procedure<a name="line.143"></a>
 <span class="sourceLineNo">144</span>   */<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  protected void addChildProcedure(Procedure&lt;TEnvironment&gt;... subProcedure) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    if (subProcedure == null) return;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    final int len = subProcedure.length;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    if (len == 0) return;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    if (subProcList == null) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      subProcList = new ArrayList&lt;&gt;(len);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    for (int i = 0; i &lt; len; ++i) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      Procedure&lt;TEnvironment&gt; proc = subProcedure[i];<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      if (!proc.hasOwner()) proc.setOwner(getOwner());<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      subProcList.add(proc);<a name="line.155"></a>
+<span class="sourceLineNo">145</span>  protected &lt;T extends Procedure&lt;TEnvironment&gt;&gt; void addChildProcedure(<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      @SuppressWarnings("unchecked") T... subProcedure) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    if (subProcedure == null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      return;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    final int len = subProcedure.length;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    if (len == 0) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      return;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    if (subProcList == null) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      subProcList = new ArrayList&lt;&gt;(len);<a name="line.155"></a>
 <span class="sourceLineNo">156</span>    }<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  }<a name="line.157"></a>
-<span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>  @Override<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  protected Procedure[] execute(final TEnvironment env)<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  throws ProcedureSuspendedException, ProcedureYieldException, InterruptedException {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    updateTimestamp();<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    try {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      failIfAborted();<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>      if (!hasMoreState() || isFailed()) return null;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      TState state = getCurrentState();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      if (stateCount == 0) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        setNextState(getStateId(state));<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>      if (LOG.isTraceEnabled()) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        LOG.trace(state  + " " + this + "; cycles=" + this.cycles);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      // Keep running count of cycles<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      if (getStateId(state) != this.previousState) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>        this.previousState = getStateId(state);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        this.cycles = 0;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      } else {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        this.cycles++;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>      LOG.trace("{}", toString());<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      stateFlow = executeFromState(env, state);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      if (!hasMoreState()) setNextState(EOF_STATE);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      if (subProcList != null &amp;&amp; !subProcList.isEmpty()) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        Procedure[] subProcedures = subProcList.toArray(new Procedure[subProcList.size()]);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        subProcList = null;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        return subProcedures;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      }<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      return (isWaiting() || isFailed() || !hasMoreState()) ? null : new Procedure[] {this};<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    } finally {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      updateTimestamp();<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  @Override<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  protected void rollback(final TEnvironment env)<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      throws IOException, InterruptedException {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    if (isEofState()) stateCount--;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    try {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      updateTimestamp();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      rollbackState(env, getCurrentState());<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      stateCount--;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    } finally {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      updateTimestamp();<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private boolean isEofState() {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    return stateCount &gt; 0 &amp;&amp; states[stateCount-1] == EOF_STATE;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  @Override<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  protected boolean abort(final TEnvironment env) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    LOG.debug("Abort requested for {}", this);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    if (hasMoreState()) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      aborted.set(true);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      return true;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    LOG.debug("Ignoring abort request on {}", this);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    return false;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /**<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * If procedure has more states then abort it otherwise procedure is finished and abort can be<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   * ignored.<a name="line.227"></a>
-<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  protected final void failIfAborted() {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    if (aborted.get()) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (hasMoreState()) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        setAbortFailure(getClass().getSimpleName(), "abort requested");<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      } else {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        LOG.warn("Ignoring abort request on state='" + getCurrentState() + "' for " + this);<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>  }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * Used by the default implementation of abort() to know if the current state can be aborted<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * and rollback can be triggered.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   */<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  protected boolean isRollbackSupported(final TState state) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    return false;<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>  @Override<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  protected boolean isYieldAfterExecutionStep(final TEnvironment env) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    return isYieldBeforeExecuteFromState(env, getCurrentState());<a name="line.249"></a>
+<span class="sourceLineNo">157</span>    for (int i = 0; i &lt; len; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      Procedure&lt;TEnvironment&gt; proc = subProcedure[i];<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      if (!proc.hasOwner()) proc.setOwner(getOwner());<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      subProcList.add(proc);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<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>  @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  protected Procedure[] execute(final TEnvironment env)<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  throws ProcedureSuspendedException, ProcedureYieldException, InterruptedException {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    updateTimestamp();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    try {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      failIfAborted();<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>      if (!hasMoreState() || isFailed()) return null;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      TState state = getCurrentState();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      if (stateCount == 0) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        setNextState(getStateId(state));<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>      if (LOG.isTraceEnabled()) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        LOG.trace(state  + " " + this + "; cycles=" + this.cycles);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      // Keep running count of cycles<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      if (getStateId(state) != this.previousState) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        this.previousState = getStateId(state);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        this.cycles = 0;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      } else {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        this.cycles++;<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>      LOG.trace("{}", toString());<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      stateFlow = executeFromState(env, state);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      if (!hasMoreState()) setNextState(EOF_STATE);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      if (subProcList != null &amp;&amp; !subProcList.isEmpty()) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        Procedure[] subProcedures = subProcList.toArray(new Procedure[subProcList.size()]);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        subProcList = null;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        return subProcedures;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      return (isWaiting() || isFailed() || !hasMoreState()) ? null : new Procedure[] {this};<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } finally {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      updateTimestamp();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    }<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>  @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>  protected void rollback(final TEnvironment env)<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      throws IOException, InterruptedException {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    if (isEofState()) stateCount--;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    try {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      updateTimestamp();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      rollbackState(env, getCurrentState());<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      stateCount--;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    } finally {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      updateTimestamp();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  private boolean isEofState() {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    return stateCount &gt; 0 &amp;&amp; states[stateCount-1] == EOF_STATE;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>  @Override<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  protected boolean abort(final TEnvironment env) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    LOG.debug("Abort requested for {}", this);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    if (hasMoreState()) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      aborted.set(true);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      return true;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    LOG.debug("Ignoring abort request on {}", this);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return false;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>  /**<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * If procedure has more states then abort it otherwise procedure is finished and abort can be<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   * ignored.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  protected final void failIfAborted() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    if (aborted.get()) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      if (hasMoreState()) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        setAbortFailure(getClass().getSimpleName(), "abort requested");<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        LOG.warn("Ignoring abort request on state='" + getCurrentState() + "' for " + this);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * Used by the default implementation of abort() to know if the current state can be aborted<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * and rollback can be triggered.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  protected boolean isRollbackSupported(final TState state) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    return false;<a name="line.249"></a>
 <span class="sourceLineNo">250</span>  }<a name="line.250"></a>
 <span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  private boolean hasMoreState() {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    return stateFlow != Flow.NO_MORE_STATE;<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>  protected TState getCurrentState() {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    return stateCount &gt; 0 ? getState(states[stateCount-1]) : getInitialState();<a name="line.257"></a>
-<span class="sourceLineNo">258</span>  }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  /**<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   * This method is used from test code as it cannot be assumed that state transition will happen<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   * sequentially. Some procedures may skip steps/ states, some may add intermediate steps in<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * future.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   */<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  @VisibleForTesting<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  public int getCurrentStateId() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    return getStateId(getCurrentState());<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>  /**<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * Set the next state for the procedure.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @param stateId the ordinal() of the state enum (or state id)<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private void setNextState(final int stateId) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    if (states == null || states.length == stateCount) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      int newCapacity = stateCount + 8;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      if (states != null) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        states = Arrays.copyOf(states, newCapacity);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      } else {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        states = new int[newCapacity];<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    states[stateCount++] = stateId;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span>  @Override<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  protected void toStringState(StringBuilder builder) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    super.toStringState(builder);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    if (!isFinished() &amp;&amp; !isEofState() &amp;&amp; getCurrentState() != null) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      builder.append(":").append(getCurrentState());<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  @Override<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  protected void serializeStateData(ProcedureStateSerializer serializer)<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throws IOException {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    StateMachineProcedureData.Builder data = StateMachineProcedureData.newBuilder();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    for (int i = 0; i &lt; stateCount; ++i) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      data.addState(states[i]);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    serializer.serialize(data.build());<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>  @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected void deserializeStateData(ProcedureStateSerializer serializer)<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      throws IOException {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    StateMachineProcedureData data = serializer.deserialize(StateMachineProcedureData.class);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    stateCount = data.getStateCount();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    if (stateCount &gt; 0) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      states = new int[stateCount];<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      for (int i = 0; i &lt; stateCount; ++i) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        states[i] = data.getState(i);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      }<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      if (isEofState()) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        stateFlow = Flow.NO_MORE_STATE;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    } else {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      states = null;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
-<span class="sourceLineNo">321</span>}<a name="line.321"></a>
+<span class="sourceLineNo">252</span>  @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  protected boolean isYieldAfterExecutionStep(final TEnvironment env) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    return isYieldBeforeExecuteFromState(env, getCurrentState());<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>  private boolean hasMoreState() {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    return stateFlow != Flow.NO_MORE_STATE;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>  }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>  protected TState getCurrentState() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    return stateCount &gt; 0 ? getState(states[stateCount-1]) : getInitialState();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * This method is used from test code as it cannot be assumed that state transition will happen<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * sequentially. Some procedures may skip steps/ states, some may add intermediate steps in<a name="line.267"></a>
+<span class="sourceLineNo">268</span>   * future.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>   */<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  @VisibleForTesting<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  public int getCurrentStateId() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    return getStateId(getCurrentState());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  }<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * Set the next state for the procedure.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   * @param stateId the ordinal() of the state enum (or state id)<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   */<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  private void setNextState(final int stateId) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    if (states == null || states.length == stateCount) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      int newCapacity = stateCount + 8;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      if (states != null) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        states = Arrays.copyOf(states, newCapacity);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      } else {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        states = new int[newCapacity];<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    states[stateCount++] = stateId;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>  @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  protected void toStringState(StringBuilder builder) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    super.toStringState(builder);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    if (!isFinished() &amp;&amp; !isEofState() &amp;&amp; getCurrentState() != null) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      builder.append(":").append(getCurrentState());<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>  @Override<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  protected void serializeStateData(ProcedureStateSerializer serializer)<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      throws IOException {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    StateMachineProcedureData.Builder data = StateMachineProcedureData.newBuilder();<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    for (int i = 0; i &lt; stateCount; ++i) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      data.addState(states[i]);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    serializer.serialize(data.build());<a name="line.306"></a>
+<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>  @Override<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  protected void deserializeStateData(ProcedureStateSerializer serializer)<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      throws IOException {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    StateMachineProcedureData data = serializer.deserialize(StateMachineProcedureData.class);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    stateCount = data.getStateCount();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    if (stateCount &gt; 0) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      states = new int[stateCount];<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      for (int i = 0; i &lt; stateCount; ++i) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        states[i] = data.getState(i);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      if (isEofState()) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        stateFlow = Flow.NO_MORE_STATE;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    } else {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      states = null;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
+<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>}<a name="line.326"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.NamespaceQuotasVisitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.NamespaceQuotasVisitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.NamespaceQuotasVisitor.html
index 0173504..ef10514 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.NamespaceQuotasVisitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.NamespaceQuotasVisitor.html
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s&lt;/td&gt;&lt;td&gt;&amp;lt;global-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.86"></a>
 <span class="sourceLineNo">087</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;table&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;table-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.87"></a>
 <span class="sourceLineNo">088</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;ns&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;namespace-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;/table<a name="line.89"></a>
+<span class="sourceLineNo">089</span> * &lt;/table&gt;<a name="line.89"></a>
 <span class="sourceLineNo">090</span> */<a name="line.90"></a>
 <span class="sourceLineNo">091</span>@InterfaceAudience.Private<a name="line.91"></a>
 <span class="sourceLineNo">092</span>@InterfaceStability.Evolving<a name="line.92"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.QuotasVisitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.QuotasVisitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.QuotasVisitor.html
index 0173504..ef10514 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.QuotasVisitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.QuotasVisitor.html
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s&lt;/td&gt;&lt;td&gt;&amp;lt;global-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.86"></a>
 <span class="sourceLineNo">087</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;table&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;table-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.87"></a>
 <span class="sourceLineNo">088</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;ns&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;namespace-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;/table<a name="line.89"></a>
+<span class="sourceLineNo">089</span> * &lt;/table&gt;<a name="line.89"></a>
 <span class="sourceLineNo">090</span> */<a name="line.90"></a>
 <span class="sourceLineNo">091</span>@InterfaceAudience.Private<a name="line.91"></a>
 <span class="sourceLineNo">092</span>@InterfaceStability.Evolving<a name="line.92"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.TableQuotasVisitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.TableQuotasVisitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.TableQuotasVisitor.html
index 0173504..ef10514 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.TableQuotasVisitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.TableQuotasVisitor.html
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s&lt;/td&gt;&lt;td&gt;&amp;lt;global-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.86"></a>
 <span class="sourceLineNo">087</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;table&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;table-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.87"></a>
 <span class="sourceLineNo">088</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;ns&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;namespace-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;/table<a name="line.89"></a>
+<span class="sourceLineNo">089</span> * &lt;/table&gt;<a name="line.89"></a>
 <span class="sourceLineNo">090</span> */<a name="line.90"></a>
 <span class="sourceLineNo">091</span>@InterfaceAudience.Private<a name="line.91"></a>
 <span class="sourceLineNo">092</span>@InterfaceStability.Evolving<a name="line.92"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.UserQuotasVisitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.UserQuotasVisitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.UserQuotasVisitor.html
index 0173504..ef10514 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.UserQuotasVisitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.UserQuotasVisitor.html
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s&lt;/td&gt;&lt;td&gt;&amp;lt;global-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.86"></a>
 <span class="sourceLineNo">087</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;table&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;table-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.87"></a>
 <span class="sourceLineNo">088</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;ns&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;namespace-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;/table<a name="line.89"></a>
+<span class="sourceLineNo">089</span> * &lt;/table&gt;<a name="line.89"></a>
 <span class="sourceLineNo">090</span> */<a name="line.90"></a>
 <span class="sourceLineNo">091</span>@InterfaceAudience.Private<a name="line.91"></a>
 <span class="sourceLineNo">092</span>@InterfaceStability.Evolving<a name="line.92"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html
index 0173504..ef10514 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaTableUtil.html
@@ -94,7 +94,7 @@
 <span class="sourceLineNo">086</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s&lt;/td&gt;&lt;td&gt;&amp;lt;global-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.86"></a>
 <span class="sourceLineNo">087</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;table&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;table-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.87"></a>
 <span class="sourceLineNo">088</span> *   &lt;tr&gt;&lt;td&gt;u.&amp;lt;user&amp;gt;&lt;/td&gt;&lt;td&gt;q:s.&amp;lt;ns&amp;gt;&lt;/td&gt;&lt;td&gt;&amp;lt;namespace-quotas&amp;gt;&lt;/td&gt;&lt;/tr&gt;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;/table<a name="line.89"></a>
+<span class="sourceLineNo">089</span> * &lt;/table&gt;<a name="line.89"></a>
 <span class="sourceLineNo">090</span> */<a name="line.90"></a>
 <span class="sourceLineNo">091</span>@InterfaceAudience.Private<a name="line.91"></a>
 <span class="sourceLineNo">092</span>@InterfaceStability.Evolving<a name="line.92"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html
index b0bd7c4..8af6f6b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.html
@@ -28,65 +28,67 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.slf4j.Logger;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.slf4j.LoggerFactory;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.quotas.SpaceLimitingException;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.quotas.SpaceViolationPolicy;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.quotas.SpaceViolationPolicyEnforcement;<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> * A {@link SpaceViolationPolicyEnforcement} which disables the table. The enforcement<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * counterpart to {@link SpaceViolationPolicy#DISABLE}.<a name="line.33"></a>
-<span class="sourceLineNo">034</span> */<a name="line.34"></a>
-<span class="sourceLineNo">035</span>@InterfaceAudience.Private<a name="line.35"></a>
-<span class="sourceLineNo">036</span>public class DisableTableViolationPolicyEnforcement extends DefaultViolationPolicyEnforcement {<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  private static final Logger LOG =<a name="line.37"></a>
-<span class="sourceLineNo">038</span>      LoggerFactory.getLogger(DisableTableViolationPolicyEnforcement.class);<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>  @Override<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  public void enable() throws IOException {<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    try {<a name="line.42"></a>
-<span class="sourceLineNo">043</span>      if (LOG.isTraceEnabled()) {<a name="line.43"></a>
-<span class="sourceLineNo">044</span>        LOG.trace("Starting disable of " + getTableName());<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      }<a name="line.45"></a>
-<span class="sourceLineNo">046</span>      getRegionServerServices().getClusterConnection().getAdmin().disableTable(getTableName());<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      if (LOG.isTraceEnabled()) {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>        LOG.trace("Disable is complete for " + getTableName());<a name="line.48"></a>
-<span class="sourceLineNo">049</span>      }<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    } catch (TableNotEnabledException tnee) {<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      // The state we wanted it to be in.<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    }<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  @Override<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  public void disable() throws IOException {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    try {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      if (LOG.isTraceEnabled()) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>        LOG.trace("Starting enable of " + getTableName());<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      }<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      getRegionServerServices().getClusterConnection().getAdmin().enableTable(getTableName());<a name="line.61"></a>
-<span class="sourceLineNo">062</span>      if (LOG.isTraceEnabled()) {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>        LOG.trace("Enable is complete for " + getTableName());<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      }<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    } catch (TableNotDisabledException tnde) {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      // The state we wanted it to be in<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    }<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  }<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  @Override<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  public void check(Mutation m) throws SpaceLimitingException {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // If this policy is enacted, then the table is (or should be) disabled.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    throw new SpaceLimitingException(<a name="line.73"></a>
-<span class="sourceLineNo">074</span>        getPolicyName(), "This table is disabled due to violating a space quota.");<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  @Override<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public String getPolicyName() {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    return SpaceViolationPolicy.DISABLE.name();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
-<span class="sourceLineNo">081</span>}<a name="line.81"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.slf4j.Logger;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.slf4j.LoggerFactory;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.quotas.SpaceLimitingException;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.quotas.SpaceViolationPolicy;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.quotas.SpaceViolationPolicyEnforcement;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>/**<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * A {@link SpaceViolationPolicyEnforcement} which disables the table. The enforcement<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * counterpart to {@link SpaceViolationPolicy#DISABLE}.<a name="line.34"></a>
+<span class="sourceLineNo">035</span> */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Private<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class DisableTableViolationPolicyEnforcement extends DefaultViolationPolicyEnforcement {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  private static final Logger LOG =<a name="line.38"></a>
+<span class="sourceLineNo">039</span>      LoggerFactory.getLogger(DisableTableViolationPolicyEnforcement.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  @Override<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  public void enable() throws IOException {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    try {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      if (LOG.isTraceEnabled()) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        LOG.trace("Starting disable of " + getTableName());<a name="line.45"></a>
+<span class="sourceLineNo">046</span>      }<a name="line.46"></a>
+<span class="sourceLineNo">047</span>      getRegionServerServices().getClusterConnection().getAdmin().disableTable(getTableName());<a name="line.47"></a>
+<span class="sourceLineNo">048</span>      if (LOG.isTraceEnabled()) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        LOG.trace("Disable is complete for " + getTableName());<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    } catch (TableNotEnabledException tnee) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      // The state we wanted it to be in.<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><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  public void disable() throws IOException {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    try {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      if (LOG.isTraceEnabled()) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        LOG.trace("Starting enable of " + getTableName());<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      }<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      getRegionServerServices().getClusterConnection().getAdmin().enableTable(getTableName());<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      if (LOG.isTraceEnabled()) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        LOG.trace("Enable is complete for " + getTableName());<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    } catch (TableNotDisabledException | TableNotFoundException e) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>      // The state we wanted it to be in<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      // Or, in case table is not found, nothing to do<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><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void check(Mutation m) throws SpaceLimitingException {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    // If this policy is enacted, then the table is (or should be) disabled.<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    throw new SpaceLimitingException(<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        getPolicyName(), "This table is disabled due to violating a space quota.");<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>  @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public String getPolicyName() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    return SpaceViolationPolicy.DISABLE.name();<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>
 
 
 


[16/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="line.1364"></a>
+<span class="source

<TRUNCATED>

[07/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
index d2f8d9e..43fd3a1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
@@ -947,674 +947,678 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestImmutableHTableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHTableDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestTableDescriptorUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestTableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestImmutableHTableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHTableDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestBufferedMutatorParams.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutatorParams.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestTableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncProcess.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestBufferedMutatorParams.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutatorParams.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestClientScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScanner.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncProcess.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestClientNoCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestClientScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScanner.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAttributes.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAttributes.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestClientNoCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMetricsConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAttributes.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAttributes.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSnapshotFromAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMetricsConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestDeleteTimeStamp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestDeleteTimeStamp.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSnapshotFromAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncProcessWithRegionException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcessWithRegionException.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestDeleteTimeStamp.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestDeleteTimeStamp.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexerViaMocks.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexerViaMocks.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncProcessWithRegionException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcessWithRegionException.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestImmutableHRegionInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHRegionInfo.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexerViaMocks.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexerViaMocks.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestDelayingRunner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestDelayingRunner.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestImmutableHRegionInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHRegionInfo.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestReversedScannerCallable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReversedScannerCallable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestDelayingRunner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestDelayingRunner.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCoprocessorDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCoprocessorDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestReversedScannerCallable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReversedScannerCallable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestClientExponentialBackoff.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCoprocessorDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCoprocessorDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestInterfaceAlign.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestInterfaceAlign.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestClientExponentialBackoff.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestIncrement.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrement.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestInterfaceAlign.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestInterfaceAlign.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestColumnFamilyDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestIncrement.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrement.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestOperation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestOperation.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestColumnFamilyDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMutation.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestOperation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestOperation.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMutation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMutation.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRetriesExhaustedWithDetailsException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRetriesExhaustedWithDetailsException.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSimpleRequestController.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSimpleRequestController.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRetriesExhaustedWithDetailsException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRetriesExhaustedWithDetailsException.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRowComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRowComparator.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSimpleRequestController.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSimpleRequestController.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestProcedureFuture.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestProcedureFuture.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRowComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRowComparator.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRegionInfoDisplay.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRegionInfoDisplay.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestProcedureFuture.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestProcedureFuture.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestPutDotHas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutDotHas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRegionInfoDisplay.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRegionInfoDisplay.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestGet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestGet.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestPutDotHas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutDotHas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestImmutableHColumnDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHColumnDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestGet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestGet.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestBufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutator.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestImmutableHColumnDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHColumnDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncNamespaceAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNamespaceAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestBufferedMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutator.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRawAsyncScanCursor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncScanCursor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncNamespaceAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNamespaceAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestReplicasClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicasClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRawAsyncScanCursor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncScanCursor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestGetProcedureResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetProcedureResult.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestReplicasClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicasClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncReplicationAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestGetProcedureResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetProcedureResult.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncSnapshotAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncReplicationAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestClientTimeouts.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncSnapshotAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestClientTimeouts.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIPutRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClientWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIPutRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestLimitedScanWithFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClientWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestDropTimeoutRequest.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestDropTimeoutRequest.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestLimitedScanWithFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFlushFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFlushFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestDropTimeoutRequest.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestDropTimeoutRequest.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncToolAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncToolAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFlushFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFlushFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSeparateClientZKCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSeparateClientZKCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncToolAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncToolAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRawAsyncTablePartialScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTablePartialScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSeparateClientZKCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSeparateClientZKCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResult.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRawAsyncTablePartialScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTablePartialScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSideScanExcpetion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResult.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSideScanExcpetion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCISleep.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCISleep.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAppendFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAppendFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCISleep.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCISleep.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRawAsyncTableLimitedScanWithFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableLimitedScanWithFilter.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAppendFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAppendFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestServerLoadDurability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerLoadDurability.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRawAsyncTableLimitedScanWithFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableLimitedScanWithFilter.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAllowPartialScanResultCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAllowPartialScanResultCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestServerLoadDurability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerLoadDurability.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSide3.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAllowPartialScanResultCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAllowPartialScanResultCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexerFlushCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSide3.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRawAsyncTableScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexerFlushCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestIncrementFromClientSideWithCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrementFromClientSideWithCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRawAsyncTableScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestIncrementFromClientSideWithCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrementFromClientSideWithCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionImplementation.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestScanWithoutFetchingData.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScanWithoutFetchingData.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionImplementation.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableGetMultiThreaded.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreaded.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestScanWithoutFetchingData.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScanWithoutFetchingData.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSnapshotCloneIndependence.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableGetMultiThreaded.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreaded.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIDeleteRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSnapshotCloneIndependence.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestZKAsyncRegistry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIDeleteRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncProcedureAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcedureAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestZKAsyncRegistry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncClusterAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncProcedureAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcedureAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIGetOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncClusterAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAlwaysSetScannerId.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAlwaysSetScannerId.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIGetOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAlwaysSetScannerId.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAlwaysSetScannerId.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncSingleRequestRpcRetryingCaller.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAdmin2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncSingleRequestRpcRetryingCaller.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAdmin2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncRegionAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestPutDeleteEtcCellIteration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncRegionAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMvccConsistentScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMvccConsistentScanner.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestPutDeleteEtcCellIteration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableBatch.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableBatch.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMvccConsistentScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMvccConsistentScanner.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCompleteResultScanResultCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableBatch.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableBatch.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIGetRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCompleteResultScanResultCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestScannersFromClientSide2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIGetRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableScanAll.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanAll.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestScannersFromClientSide2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableScanAll.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanAll.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestBlockEvictionFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIBadHostname.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIBadHostname.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestBlockEvictionFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIBadHostname.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIBadHostname.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncQuotaAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocator.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncQuotaAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableNoncedRetry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableNoncedRetry.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocator.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestConnectionUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionUtils.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableNoncedRetry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableNoncedRetry.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableScanMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestConnectionUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionUtils.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSideScanExcpetionWithCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetionWithCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableScanMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncDecommissionAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncDecommissionAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSideScanExcpetionWithCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetionWithCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMetaCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncDecommissionAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncDecommissionAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestClientScannerRPCTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMetaCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncReplicationAdminApiWithClusters.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestClientScannerRPCTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIPutOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncReplicationAdminApiWithClusters.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncClusterAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIPutOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestScannersFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncClusterAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexer.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestScannersFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMobSnapshotCloneIndependence.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexer.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncRegionLocatorTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionLocatorTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMobSnapshotCloneIndependence.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestUpdateConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestUpdateConfiguration.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncRegionLocatorTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionLocatorTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAdmin1.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin1.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestUpdateConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestUpdateConfiguration.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIIncrementRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIIncrementRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAdmin1.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin1.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClientWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIIncrementRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIIncrementRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestIllegalTableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClientWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestShortCircuitConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestShortCircuitConnection.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestIllegalTableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestResultFromCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultFromCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestShortCircuitConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestShortCircuitConnection.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIDeleteOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestResultFromCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultFromCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableGetMultiThreadedWithEagerCompaction.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreadedWithEagerCompaction.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIDeleteOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestPutWithDelete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutWithDelete.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableGetMultiThreadedWithEagerCompaction.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreadedWithEagerCompaction.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestEnableTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestPutWithDelete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutWithDelete.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestLeaseRenewal.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLeaseRenewal.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestEnableTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestReplicaWithCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestLeaseRenewal.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLeaseRenewal.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncRegionAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestReplicaWithCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestTableFavoredNodes.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncRegionAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMobSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestTableFavoredNodes.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSideNoCodec.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMobSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSideWithCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideWithCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSideNoCodec.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMalformedCellFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMalformedCellFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSideWithCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideWithCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableGe

<TRUNCATED>

[32/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html b/devapidocs/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html
index c386d6c..d8d90b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html
@@ -244,7 +244,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#convert-org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest-">convert</a></span>(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;request)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-&nbsp;</td>
+<div class="block">Convert from CPEP protobuf 2.5 to internal protobuf 3.3.</div>
+</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest</code></td>
@@ -257,7 +258,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#convert-org.apache.hadoop.hbase.protobuf.generated.ClientProtos.PrepareBulkLoadRequest-">convert</a></span>(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.PrepareBulkLoadRequest&nbsp;request)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
-&nbsp;</td>
+<div class="block">Convert from CPEP protobuf 2.5 to internal protobuf 3.3.</div>
+</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>private org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest</code></td>
@@ -469,9 +471,10 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.99">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.PrepareBulkLoadRequest&nbsp;request)
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.102">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.PrepareBulkLoadRequest&nbsp;request)
                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Convert from CPEP protobuf 2.5 to internal protobuf 3.3.</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code>org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException</code></dd>
@@ -484,7 +487,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupBulkLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.111">cleanupBulkLoad</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.114">cleanupBulkLoad</a>(com.google.protobuf.RpcController&nbsp;controller,
                             org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CleanupBulkLoadRequest&nbsp;request,
                             com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CleanupBulkLoadResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -500,7 +503,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.128">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CleanupBulkLoadRequest&nbsp;request)
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.130">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.CleanupBulkLoadRequest&nbsp;request)
                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block">Convert from CPEP protobuf 2.5 to internal protobuf 3.3.</div>
@@ -516,7 +519,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <ul class="blockList">
 <li class="blockList">
 <h4>secureBulkLoadHFiles</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.140">secureBulkLoadHFiles</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.142">secureBulkLoadHFiles</a>(com.google.protobuf.RpcController&nbsp;controller,
                                  org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.SecureBulkLoadHFilesRequest&nbsp;request,
                                  com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.SecureBulkLoadHFilesResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
@@ -532,9 +535,10 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <ul class="blockList">
 <li class="blockList">
 <h4>convert</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.157">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;request)
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.162">convert</a>(org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;request)
                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Convert from CPEP protobuf 2.5 to internal protobuf 3.3.</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code>org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException</code></dd>
@@ -547,7 +551,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <ul class="blockList">
 <li class="blockList">
 <h4>ConvertSecureBulkLoadHFilesRequest</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.168">ConvertSecureBulkLoadHFilesRequest</a>(org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.SecureBulkLoadHFilesRequest&nbsp;request)</pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.173">ConvertSecureBulkLoadHFilesRequest</a>(org.apache.hadoop.hbase.protobuf.generated.SecureBulkLoadProtos.SecureBulkLoadHFilesRequest&nbsp;request)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
@@ -557,7 +561,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Region
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getServices</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;com.google.protobuf.Service&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.181">getServices</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;com.google.protobuf.Service&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.html#line.186">getServices</a>()</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/Coprocessor.html#getServices--">Coprocessor</a></code></span></div>
 <div class="block">Coprocessor endpoints providing protobuf services should override this method.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 d9fa142..f6d74ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -137,9 +137,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.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>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 29d7634..6ef281d 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -191,8 +191,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/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>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 474f541..2b64b99 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -198,9 +198,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/util/AbstractByteRange.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/AbstractByteRange.html b/devapidocs/org/apache/hadoop/hbase/util/AbstractByteRange.html
index 840b239..6d8ce38 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/AbstractByteRange.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/AbstractByteRange.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":9,"i16":10,"i17":10,"i18":9,"i19":10,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":6};
+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":9,"i17":10,"i18":10,"i19":9,"i20":10,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":6};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -235,19 +235,23 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html"
 </td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-">get</a></span>(int&nbsp;index)</code>
 <div class="block">Retrieve the byte at <code>index</code>.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-byte:A-">get</a></span>(int&nbsp;index,
    byte[]&nbsp;dst)</code>
 <div class="block">Fill <code>dst</code> with bytes from the range, starting from <code>index</code>.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-byte:A-int-int-">get</a></span>(int&nbsp;index,
    byte[]&nbsp;dst,
@@ -256,84 +260,84 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html"
 <div class="block">Fill <code>dst</code> with bytes from the range, starting from <code>index</code>.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getBytes--">getBytes</a></span>()</code>
 <div class="block">The underlying byte[].</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getInt-int-">getInt</a></span>(int&nbsp;index)</code>
 <div class="block">Retrieve the int value at <code>index</code></div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLength--">getLength</a></span>()</code>
 <div class="block">The length of the range.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLong-int-">getLong</a></span>(int&nbsp;index)</code>
 <div class="block">Retrieve the long value at <code>index</code></div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getOffset--">getOffset</a></span>()</code>
 <div class="block">The offset, the index into the underlying byte[] at which this range
  begins.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>short</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getShort-int-">getShort</a></span>(int&nbsp;index)</code>
 <div class="block">Retrieve the short value at <code>index</code></div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLong-int-">getVLong</a></span>(int&nbsp;index)</code>
 <div class="block">Retrieve the long value at <code>index</code> which is stored as VLong</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLongSize-long-">getVLongSize</a></span>(long&nbsp;val)</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty--">isEmpty</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty-org.apache.hadoop.hbase.util.ByteRange-">isEmpty</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&nbsp;range)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isHashCached--">isHashCached</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#put-int-byte-">put</a></span>(int&nbsp;index,
    byte&nbsp;val)</code>
 <div class="block">Store <code>val</code> at <code>index</code>.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#put-int-byte:A-">put</a></span>(int&nbsp;index,
    byte[]&nbsp;val)</code>
 <div class="block">Store <code>val</code> at <code>index</code>.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#put-int-byte:A-int-int-">put</a></span>(int&nbsp;index,
    byte[]&nbsp;val,
@@ -343,41 +347,41 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html"
  <code>index</code>.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#putInt-int-int-">putInt</a></span>(int&nbsp;index,
       int&nbsp;val)</code>
 <div class="block">Store the int value at <code>index</code></div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#putLong-int-long-">putLong</a></span>(int&nbsp;index,
        long&nbsp;val)</code>
 <div class="block">Store the long value at <code>index</code></div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#putShort-int-short-">putShort</a></span>(int&nbsp;index,
         short&nbsp;val)</code>
 <div class="block">Store the short value at <code>index</code></div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#putVLong-int-long-">putVLong</a></span>(int&nbsp;index,
         long&nbsp;val)</code>
 <div class="block">Store the long value at <code>index</code> as a VLong</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#set-byte:A-">set</a></span>(byte[]&nbsp;bytes)</code>
 <div class="block">Reuse this <code>ByteRange</code> over a new byte[].</div>
 </td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#set-byte:A-int-int-">set</a></span>(byte[]&nbsp;bytes,
    int&nbsp;offset,
@@ -385,29 +389,29 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html"
 <div class="block">Reuse this <code>ByteRange</code> over a new byte[].</div>
 </td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#set-int-">set</a></span>(int&nbsp;capacity)</code>
 <div class="block">Reuse this <code>ByteRange</code> over a new byte[].</div>
 </td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#setLength-int-">setLength</a></span>(int&nbsp;length)</code>
 <div class="block">Update the length of this range.</div>
 </td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#setOffset-int-">setOffset</a></span>(int&nbsp;offset)</code>
 <div class="block">Update the beginning of this range.</div>
 </td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#unset--">unset</a></span>()</code>
 <div class="block">Nullifies this ByteRange.</div>
@@ -419,7 +423,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html"
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.htm
 l?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://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.util.ByteRange">
@@ -1123,13 +1127,26 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html"
 <pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html#line.314">clearHashCache</a>()</pre>
 </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/util/AbstractByteRange.html#line.319">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="compareTo-org.apache.hadoop.hbase.util.ByteRange-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html#line.323">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&nbsp;other)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html#line.337">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&nbsp;other)</pre>
 <div class="block">Bitwise comparison of each byte in the array. Unsigned comparison, not
  paying attention to java's signed bytes.</div>
 <dl>
@@ -1144,7 +1161,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html#line.329">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/AbstractByteRange.html#line.343">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/util/AbstractPositionedByteRange.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/AbstractPositionedByteRange.html b/devapidocs/org/apache/hadoop/hbase/util/AbstractPositionedByteRange.html
index 63cf6b9..76c478c 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/AbstractPositionedByteRange.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/AbstractPositionedByteRange.html
@@ -131,7 +131,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/PositionedByteRa
  support. <code>position</code> is considered transient, not fundamental to the
  definition of the range, and does not participate in
  <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-"><code>AbstractByteRange.compareTo(ByteRange)</code></a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--"><code>AbstractByteRange.hashCode()</code></a>, or
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>Object.equals(Object)</code></a>. <code>Position</code> is retained by copy operations.</div>
+ <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-"><code>AbstractByteRange.equals(Object)</code></a>. <code>Position</code> is retained by copy operations.</div>
 </li>
 </ul>
 </div>
@@ -468,14 +468,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/PositionedByteRa
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractByteRange</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#clearHashCache--">clearHashCache</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopySubRangeTo-int-int-byte:A-int-">deepCopySubRangeTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyTo-byte:A-int-">deepCopyTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyToNewArray--">deepCopyToNewArray</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-">get</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getBytes--">getBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getInt-int-">getInt</a>, <a href="../../../../../org/apache/hadoop/hbase/util/Abstra
 ctByteRange.html#getLength--">getLength</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLong-int-">getLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getOffset--">getOffset</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getShort-int-">getShort</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLong-int-">getVLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLongSize-long-">getVLongSize</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty-org.apache.hadoop.hbase.util.ByteRange-">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isHas
 hCached--">isHashCached</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#toString--">toString</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#clearHashCache--">clearHashCache</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopySubRangeTo-int-int-byte:A-int-">deepCopySubRangeTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyTo-byte:A-int-">deepCopyTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyToNewArray--">deepCopyToNewArray</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-">get</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getBytes--">getBytes</a>, <a href="../../../../../org/apache/hadoop/hbas
 e/util/AbstractByteRange.html#getInt-int-">getInt</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLength--">getLength</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLong-int-">getLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getOffset--">getOffset</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getShort-int-">getShort</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLong-int-">getVLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLongSize-long-">getVLongSize</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty-org.apache.hadoop.hba
 se.util.ByteRange-">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isHashCached--">isHashCached</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#toString--">toString</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.htm
 l?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://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.util.ByteRange">
@@ -518,7 +518,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/PositionedByteRa
  calculated according to offset.
  <p>
  Position is considered transient and does not participate in
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>Object.equals(Object)</code></a> or <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--"><code>AbstractByteRange.hashCode()</code></a> comparisons.
+ <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-"><code>AbstractByteRange.equals(Object)</code></a> or <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--"><code>AbstractByteRange.hashCode()</code></a> comparisons.
  </p></div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/util/JRubyFormat.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/JRubyFormat.html b/devapidocs/org/apache/hadoop/hbase/util/JRubyFormat.html
index 92a8f5e..243c8b2 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/JRubyFormat.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/JRubyFormat.html
@@ -110,16 +110,17 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public final class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.56">JRubyFormat</a>
+public final class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.58">JRubyFormat</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Utility class for converting objects to JRuby.
 
- It handles null, Boolean, Number, String, byte[], List<Object>, Map<String, Object> structures.
+ It handles null, Boolean, Number, String, byte[], List&lt;Object>, Map&lt;String, Object>
+   structures.
 
  <p>
  E.g.
  <pre>
- Map<String, Object> map = new LinkedHashMap<>();
+ Map&lt;String, Object> map = new LinkedHashMap&lt;>();
  map.put("null", null);
  map.put("boolean", true);
  map.put("number", 1);
@@ -132,7 +133,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  <p>
  Calling <a href="../../../../../org/apache/hadoop/hbase/util/JRubyFormat.html#print-java.lang.Object-"><code>print(Object)</code></a> method will result:
  <pre>
- { null => '', boolean => 'true', number => '1', string => 'str', binary => '010203', list => [ '1', '2', 'true' ] }
+ { null => '', boolean => 'true', number => '1', string => 'str',
+   binary => '010203', list => [ '1', '2', 'true' ] }
  </pre>
  </p></div>
 </li>
@@ -232,7 +234,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>escaper</h4>
-<pre>private static final&nbsp;org.apache.hbase.thirdparty.com.google.common.escape.Escaper <a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.57">escaper</a></pre>
+<pre>private static final&nbsp;org.apache.hbase.thirdparty.com.google.common.escape.Escaper <a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.59">escaper</a></pre>
 </li>
 </ul>
 </li>
@@ -249,7 +251,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>JRubyFormat</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.70">JRubyFormat</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.72">JRubyFormat</a>()</pre>
 </li>
 </ul>
 </li>
@@ -266,7 +268,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>escape</h4>
-<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.73">escape</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</pre>
+<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.75">escape</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</pre>
 </li>
 </ul>
 <a name="appendJRuby-java.lang.StringBuilder-java.lang.Object-">
@@ -275,7 +277,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>appendJRuby</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.82">appendJRuby</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.84">appendJRuby</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</pre>
 </li>
 </ul>
@@ -285,7 +287,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>print</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.145">print</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/JRubyFormat.html#line.147">print</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/util/OrderedBytes.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/OrderedBytes.html b/devapidocs/org/apache/hadoop/hbase/util/OrderedBytes.html
index a34e20a..998ec97 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/OrderedBytes.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/OrderedBytes.html
@@ -1378,7 +1378,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/OrderedBytes.html#line.344">unsignedCmp</a>(long&nbsp;x1,
                                long&nbsp;x2)</pre>
 <div class="block">Perform unsigned comparison between two long values. Conforms to the same interface as
- <code>org.apache.hadoop.hbase.CellComparator#COMPARATOR#compare(Object, Object)</code>.</div>
+ <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase"><code>CellComparator</code></a>.</div>
 </li>
 </ul>
 <a name="putUint32-org.apache.hadoop.hbase.util.PositionedByteRange-int-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html b/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
index 5dd2267..ea9fdc0 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
@@ -595,7 +595,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.h
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleByteRange.html#line.128">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;thatObject)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractByteRange</a></code></dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html b/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
index 2f673bf..3c88d9a 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
@@ -623,7 +623,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.h
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html#line.226">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;thatObject)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractByteRange</a></code></dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html b/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html
index 357a307..ab5c987 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedByteRange.html
@@ -130,7 +130,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/AbstractPositionedB
  support and it is a readonly version. <code>position</code> is considered
  transient, not fundamental to the definition of the range, and does not
  participate in <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-"><code>AbstractByteRange.compareTo(ByteRange)</code></a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--"><code>AbstractByteRange.hashCode()</code></a>, or
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>Object.equals(Object)</code></a>. <code>Position</code> is retained by copy operations.</div>
+ <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-"><code>AbstractByteRange.equals(Object)</code></a>. <code>Position</code> is retained by copy operations.</div>
 </li>
 </ul>
 </div>
@@ -386,14 +386,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/AbstractPositionedB
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractByteRange</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#clearHashCache--">clearHashCache</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopySubRangeTo-int-int-byte:A-int-">deepCopySubRangeTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyTo-byte:A-int-">deepCopyTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyToNewArray--">deepCopyToNewArray</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-">get</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getBytes--">getBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getInt-int-">getInt</a>, <a href="../../../../../org/apache/hadoop/hbase/util/Abstra
 ctByteRange.html#getLength--">getLength</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLong-int-">getLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getOffset--">getOffset</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getShort-int-">getShort</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLong-int-">getVLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLongSize-long-">getVLongSize</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty-org.apache.hadoop.hbase.util.ByteRange-">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isHas
 hCached--">isHashCached</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#toString--">toString</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#clearHashCache--">clearHashCache</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopySubRangeTo-int-int-byte:A-int-">deepCopySubRangeTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyTo-byte:A-int-">deepCopyTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyToNewArray--">deepCopyToNewArray</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-">get</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getBytes--">getBytes</a>, <a href="../../../../../org/apache/hadoop/hbas
 e/util/AbstractByteRange.html#getInt-int-">getInt</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLength--">getLength</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLong-int-">getLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getOffset--">getOffset</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getShort-int-">getShort</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLong-int-">getVLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLongSize-long-">getVLongSize</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty-org.apache.hadoop.hba
 se.util.ByteRange-">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isHashCached--">isHashCached</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#toString--">toString</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.htm
 l?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://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.util.ByteRange">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html b/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
index f200c0b..8545f43 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
@@ -130,7 +130,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/AbstractPositionedB
  position support and it is a mutable version. <code>position</code> is considered transient,
  not fundamental to the definition of the range, and does not participate in
  <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-"><code>AbstractByteRange.compareTo(ByteRange)</code></a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--"><code>AbstractByteRange.hashCode()</code></a>, or
- <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>Object.equals(Object)</code></a>. <code>Position</code> is retained by copy operations.</div>
+ <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-"><code>AbstractByteRange.equals(Object)</code></a>. <code>Position</code> is retained by copy operations.</div>
 </li>
 </ul>
 </div>
@@ -392,14 +392,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/AbstractPositionedB
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractByteRange</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#clearHashCache--">clearHashCache</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopySubRangeTo-int-int-byte:A-int-">deepCopySubRangeTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyTo-byte:A-int-">deepCopyTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyToNewArray--">deepCopyToNewArray</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-">get</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getBytes--">getBytes</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getInt-int-">getInt</a>, <a href="../../../../../org/apache/hadoop/hbase/util/Abstra
 ctByteRange.html#getLength--">getLength</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLong-int-">getLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getOffset--">getOffset</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getShort-int-">getShort</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLong-int-">getVLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLongSize-long-">getVLongSize</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty-org.apache.hadoop.hbase.util.ByteRange-">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isHas
 hCached--">isHashCached</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#toString--">toString</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#clearHashCache--">clearHashCache</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#compareTo-org.apache.hadoop.hbase.util.ByteRange-">compareTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopySubRangeTo-int-int-byte:A-int-">deepCopySubRangeTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyTo-byte:A-int-">deepCopyTo</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#deepCopyToNewArray--">deepCopyToNewArray</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#get-int-">get</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getBytes--">getBytes</a>, <a href="../../../../../org/apache/hadoop/hbas
 e/util/AbstractByteRange.html#getInt-int-">getInt</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLength--">getLength</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getLong-int-">getLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getOffset--">getOffset</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getShort-int-">getShort</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLong-int-">getVLong</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#getVLongSize-long-">getVLongSize</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isEmpty-org.apache.hadoop.hba
 se.util.ByteRange-">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#isHashCached--">isHashCached</a>, <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.html#toString--">toString</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.htm
 l?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://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.util.ByteRange">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 c24eb46..41209a5 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -532,14 +532,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.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/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/4df09ed9/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 c0e28b4..9ec5b35 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -189,8 +189,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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>


[14/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html
index acfc040..47f59ac 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFlushContext.html
@@ -65,7 +65,7 @@
 <span class="sourceLineNo">057</span>   *<a name="line.57"></a>
 <span class="sourceLineNo">058</span>   * A very short operation<a name="line.58"></a>
 <span class="sourceLineNo">059</span>   *<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   * @return<a name="line.60"></a>
+<span class="sourceLineNo">060</span>   * @return whether compaction is required<a name="line.60"></a>
 <span class="sourceLineNo">061</span>   * @throws IOException<a name="line.61"></a>
 <span class="sourceLineNo">062</span>   */<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  boolean commit(MonitoredTask status) throws IOException;<a name="line.63"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html
index 31ba835..04d65a9 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html
@@ -68,7 +68,7 @@
 <span class="sourceLineNo">060</span>   * method based on the return type (INCLUDE) of this method. The values that can be returned by<a name="line.60"></a>
 <span class="sourceLineNo">061</span>   * this method are {@link MatchCode#INCLUDE}, {@link MatchCode#SEEK_NEXT_COL} and<a name="line.61"></a>
 <span class="sourceLineNo">062</span>   * {@link MatchCode#SEEK_NEXT_ROW}.<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * @param cell<a name="line.63"></a>
+<span class="sourceLineNo">063</span>   * @param cell a cell with the column to match against<a name="line.63"></a>
 <span class="sourceLineNo">064</span>   * @param type The type of the Cell<a name="line.64"></a>
 <span class="sourceLineNo">065</span>   * @return The match code instance.<a name="line.65"></a>
 <span class="sourceLineNo">066</span>   * @throws IOException in case there is an internal consistency problem caused by a data<a name="line.66"></a>
@@ -85,7 +85,7 @@
 <span class="sourceLineNo">077</span>   * Implementations which include all the columns could just return {@link MatchCode#INCLUDE} in<a name="line.77"></a>
 <span class="sourceLineNo">078</span>   * the {@link #checkColumn(Cell, byte)} method and perform all the operations in this<a name="line.78"></a>
 <span class="sourceLineNo">079</span>   * checkVersions method.<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   * @param cell<a name="line.80"></a>
+<span class="sourceLineNo">080</span>   * @param cell a cell with the column to match against<a name="line.80"></a>
 <span class="sourceLineNo">081</span>   * @param timestamp The timestamp of the cell.<a name="line.81"></a>
 <span class="sourceLineNo">082</span>   * @param type the type of the key value (Put/Delete)<a name="line.82"></a>
 <span class="sourceLineNo">083</span>   * @param ignoreCount indicates if the KV needs to be excluded while counting (used during<a name="line.83"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html
index 098dc5e..a71f43d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.PeerRegionServerListener.html
@@ -56,203 +56,190 @@
 <span class="sourceLineNo">048</span><a name="line.48"></a>
 <span class="sourceLineNo">049</span>  private static final Logger LOG = LoggerFactory.getLogger(HBaseReplicationEndpoint.class);<a name="line.49"></a>
 <span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private Object zkwLock = new Object();<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private ZKWatcher zkw = null;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private List&lt;ServerName&gt; regionServers = new ArrayList&lt;&gt;(0);<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private long lastRegionServerUpdate;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  protected void disconnect() {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    synchronized (zkwLock) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      if (zkw != null) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>        zkw.close();<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      }<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    }<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * A private method used to re-establish a zookeeper session with a peer cluster.<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @param ke<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  protected void reconnect(KeeperException ke) {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    if (ke instanceof ConnectionLossException || ke instanceof SessionExpiredException<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        || ke instanceof AuthFailedException) {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      String clusterKey = ctx.getPeerConfig().getClusterKey();<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      LOG.warn("Lost the ZooKeeper connection for peer " + clusterKey, ke);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      try {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        reloadZkWatcher();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      } catch (IOException io) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        LOG.warn("Creation of ZookeeperWatcher failed for peer " + clusterKey, io);<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>  }<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  @Override<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public void start() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    startAsync();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  @Override<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public void stop() {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    stopAsync();<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>  @Override<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  protected void doStart() {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    try {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      reloadZkWatcher();<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      notifyStarted();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    } catch (IOException e) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      notifyFailed(e);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  @Override<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  protected void doStop() {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    disconnect();<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    notifyStopped();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  // Synchronize peer cluster connection attempts to avoid races and rate<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  // limit connections when multiple replication sources try to connect to<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  // the peer cluster. If the peer cluster is down we can get out of control<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  // over time.<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public synchronized UUID getPeerUUID() {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    UUID peerUUID = null;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    try {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      synchronized (zkwLock) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        peerUUID = ZKClusterId.getUUIDForCluster(zkw);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    } catch (KeeperException ke) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      reconnect(ke);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    return peerUUID;<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>  /**<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * Get the ZK connection to this peer<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @return zk connection<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  protected ZKWatcher getZkw() {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    synchronized (zkwLock) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      return zkw;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>  /**<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * Closes the current ZKW (if not null) and creates a new one<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * @throws IOException If anything goes wrong connecting<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  void reloadZkWatcher() throws IOException {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    synchronized (zkwLock) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      if (zkw != null) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        zkw.close();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      }<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      zkw = new ZKWatcher(ctx.getConfiguration(),<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        "connection to cluster: " + ctx.getPeerId(), this);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      zkw.registerListener(new PeerRegionServerListener(this));<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><a name="line.149"></a>
-<span class="sourceLineNo">150</span>  @Override<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  public void abort(String why, Throwable e) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    LOG.error("The HBaseReplicationEndpoint corresponding to peer " + ctx.getPeerId()<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        + " was aborted for the following reason(s):" + why, e);<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 boolean isAborted() {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    // Currently this is never "Aborted", we just log when the abort method is called.<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    return false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>  /**<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * Get the list of all the region servers from the specified peer<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * @param zkw zk connection to use<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * @return list of region server addresses or an empty list if the slave is unavailable<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   */<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  protected static List&lt;ServerName&gt; fetchSlavesAddresses(ZKWatcher zkw)<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      throws KeeperException {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    List&lt;String&gt; children = ZKUtil.listChildrenAndWatchForNewChildren(zkw, zkw.znodePaths.rsZNode);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    if (children == null) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      return Collections.emptyList();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    List&lt;ServerName&gt; addresses = new ArrayList&lt;&gt;(children.size());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    for (String child : children) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      addresses.add(ServerName.parseServerName(child));<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    return addresses;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * Get a list of all the addresses of all the region servers<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * for this peer cluster<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * @return list of addresses<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  public List&lt;ServerName&gt; getRegionServers() {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    try {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      // Synchronize peer cluster connection attempts to avoid races and rate<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      // limit connections when multiple replication sources try to connect to<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      // the peer cluster. If the peer cluster is down we can get out of control<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      // over time.<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      synchronized (zkwLock) {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        setRegionServers(fetchSlavesAddresses(zkw));<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    } catch (KeeperException ke) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      if (LOG.isDebugEnabled()) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        LOG.debug("Fetch slaves addresses failed", ke);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      reconnect(ke);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    return regionServers;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  /**<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   * Set the list of region servers for that peer<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   * @param regionServers list of addresses for the region servers<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  public synchronized void setRegionServers(List&lt;ServerName&gt; regionServers) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.regionServers = regionServers;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    lastRegionServerUpdate = System.currentTimeMillis();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>  /**<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * Get the timestamp at which the last change occurred to the list of region servers to replicate<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   * to.<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * @return The System.currentTimeMillis at the last time the list of peer region servers changed.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public long getLastRegionServerUpdate() {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    return lastRegionServerUpdate;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  /**<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * Tracks changes to the list of region servers in a peer's cluster.<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  public static class PeerRegionServerListener extends ZKListener {<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final HBaseReplicationEndpoint replicationEndpoint;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final String regionServerListNode;<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>    public PeerRegionServerListener(HBaseReplicationEndpoint replicationPeer) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      super(replicationPeer.getZkw());<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      this.replicationEndpoint = replicationPeer;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      this.regionServerListNode = replicationEndpoint.getZkw().znodePaths.rsZNode;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    @Override<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    public synchronized void nodeChildrenChanged(String path) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      if (path.equals(regionServerListNode)) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        try {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>          LOG.info("Detected change to peer region servers, fetching updated list");<a name="line.239"></a>
-<span class="sourceLineNo">240</span>          replicationEndpoint.setRegionServers(fetchSlavesAddresses(replicationEndpoint.getZkw()));<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        } catch (KeeperException e) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>          LOG.error("Error reading slave addresses", e);<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>    }<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">051</span>  private ZKWatcher zkw = null;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private List&lt;ServerName&gt; regionServers = new ArrayList&lt;&gt;(0);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  private long lastRegionServerUpdate;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  protected synchronized void disconnect() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    if (zkw != null) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      zkw.close();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * A private method used to re-establish a zookeeper session with a peer cluster.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * @param ke<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  protected void reconnect(KeeperException ke) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    if (ke instanceof ConnectionLossException || ke instanceof SessionExpiredException<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        || ke instanceof AuthFailedException) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      String clusterKey = ctx.getPeerConfig().getClusterKey();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      LOG.warn("Lost the ZooKeeper connection for peer " + clusterKey, ke);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      try {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        reloadZkWatcher();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      } catch (IOException io) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        LOG.warn("Creation of ZookeeperWatcher failed for peer " + clusterKey, io);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      }<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public void start() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    startAsync();<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>  @Override<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public void stop() {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    stopAsync();<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>  @Override<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  protected void doStart() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    try {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      reloadZkWatcher();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      notifyStarted();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    } catch (IOException e) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      notifyFailed(e);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  protected void doStop() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    disconnect();<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    notifyStopped();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>  @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  // Synchronize peer cluster connection attempts to avoid races and rate<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  // limit connections when multiple replication sources try to connect to<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  // the peer cluster. If the peer cluster is down we can get out of control<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  // over time.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public synchronized UUID getPeerUUID() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    UUID peerUUID = null;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    try {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      peerUUID = ZKClusterId.getUUIDForCluster(zkw);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    } catch (KeeperException ke) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      reconnect(ke);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return peerUUID;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /**<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   * Get the ZK connection to this peer<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * @return zk connection<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  protected synchronized ZKWatcher getZkw() {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    return zkw;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  /**<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * Closes the current ZKW (if not null) and creates a new one<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   * @throws IOException If anything goes wrong connecting<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  synchronized void reloadZkWatcher() throws IOException {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    if (zkw != null) zkw.close();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    zkw = new ZKWatcher(ctx.getConfiguration(),<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        "connection to cluster: " + ctx.getPeerId(), this);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    getZkw().registerListener(new PeerRegionServerListener(this));<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void abort(String why, Throwable e) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    LOG.error("The HBaseReplicationEndpoint corresponding to peer " + ctx.getPeerId()<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        + " was aborted for the following reason(s):" + why, e);<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>  @Override<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  public boolean isAborted() {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // Currently this is never "Aborted", we just log when the abort method is called.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    return false;<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>  /**<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * Get the list of all the region servers from the specified peer<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   * @param zkw zk connection to use<a name="line.153"></a>
+<span class="sourceLineNo">154</span>   * @return list of region server addresses or an empty list if the slave is unavailable<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  protected static List&lt;ServerName&gt; fetchSlavesAddresses(ZKWatcher zkw)<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      throws KeeperException {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    List&lt;String&gt; children = ZKUtil.listChildrenAndWatchForNewChildren(zkw, zkw.znodePaths.rsZNode);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    if (children == null) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return Collections.emptyList();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    List&lt;ServerName&gt; addresses = new ArrayList&lt;&gt;(children.size());<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    for (String child : children) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      addresses.add(ServerName.parseServerName(child));<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    return addresses;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  /**<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * Get a list of all the addresses of all the region servers<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * for this peer cluster<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @return list of addresses<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  // Synchronize peer cluster connection attempts to avoid races and rate<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  // limit connections when multiple replication sources try to connect to<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  // the peer cluster. If the peer cluster is down we can get out of control<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  // over time.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  public synchronized List&lt;ServerName&gt; getRegionServers() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    try {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      setRegionServers(fetchSlavesAddresses(this.getZkw()));<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    } catch (KeeperException ke) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      if (LOG.isDebugEnabled()) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        LOG.debug("Fetch slaves addresses failed", ke);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      reconnect(ke);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    return regionServers;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>  /**<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   * Set the list of region servers for that peer<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   * @param regionServers list of addresses for the region servers<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public synchronized void setRegionServers(List&lt;ServerName&gt; regionServers) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.regionServers = regionServers;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    lastRegionServerUpdate = System.currentTimeMillis();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  /**<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   * Get the timestamp at which the last change occurred to the list of region servers to replicate<a name="line.200"></a>
+<span class="sourceLineNo">201</span>   * to.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>   * @return The System.currentTimeMillis at the last time the list of peer region servers changed.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public long getLastRegionServerUpdate() {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    return lastRegionServerUpdate;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   * Tracks changes to the list of region servers in a peer's cluster.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   */<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  public static class PeerRegionServerListener extends ZKListener {<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>    private final HBaseReplicationEndpoint replicationEndpoint;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    private final String regionServerListNode;<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public PeerRegionServerListener(HBaseReplicationEndpoint replicationPeer) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      super(replicationPeer.getZkw());<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      this.replicationEndpoint = replicationPeer;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      this.regionServerListNode = replicationEndpoint.getZkw().znodePaths.rsZNode;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>    @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    public synchronized void nodeChildrenChanged(String path) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      if (path.equals(regionServerListNode)) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        try {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          LOG.info("Detected change to peer region servers, fetching updated list");<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          replicationEndpoint.setRegionServers(fetchSlavesAddresses(replicationEndpoint.getZkw()));<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        } catch (KeeperException e) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          LOG.error("Error reading slave addresses", e);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        }<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>}<a name="line.234"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html b/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html
index 098dc5e..a71f43d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.html
@@ -56,203 +56,190 @@
 <span class="sourceLineNo">048</span><a name="line.48"></a>
 <span class="sourceLineNo">049</span>  private static final Logger LOG = LoggerFactory.getLogger(HBaseReplicationEndpoint.class);<a name="line.49"></a>
 <span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private Object zkwLock = new Object();<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private ZKWatcher zkw = null;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private List&lt;ServerName&gt; regionServers = new ArrayList&lt;&gt;(0);<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private long lastRegionServerUpdate;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  protected void disconnect() {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    synchronized (zkwLock) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      if (zkw != null) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>        zkw.close();<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      }<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    }<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * A private method used to re-establish a zookeeper session with a peer cluster.<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @param ke<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  protected void reconnect(KeeperException ke) {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    if (ke instanceof ConnectionLossException || ke instanceof SessionExpiredException<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        || ke instanceof AuthFailedException) {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      String clusterKey = ctx.getPeerConfig().getClusterKey();<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      LOG.warn("Lost the ZooKeeper connection for peer " + clusterKey, ke);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      try {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        reloadZkWatcher();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      } catch (IOException io) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        LOG.warn("Creation of ZookeeperWatcher failed for peer " + clusterKey, io);<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>  }<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  @Override<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public void start() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    startAsync();<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  @Override<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public void stop() {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    stopAsync();<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>  @Override<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  protected void doStart() {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    try {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      reloadZkWatcher();<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      notifyStarted();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    } catch (IOException e) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      notifyFailed(e);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  @Override<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  protected void doStop() {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    disconnect();<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    notifyStopped();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  // Synchronize peer cluster connection attempts to avoid races and rate<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  // limit connections when multiple replication sources try to connect to<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  // the peer cluster. If the peer cluster is down we can get out of control<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  // over time.<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public synchronized UUID getPeerUUID() {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    UUID peerUUID = null;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    try {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      synchronized (zkwLock) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        peerUUID = ZKClusterId.getUUIDForCluster(zkw);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    } catch (KeeperException ke) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      reconnect(ke);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    return peerUUID;<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>  /**<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * Get the ZK connection to this peer<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @return zk connection<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  protected ZKWatcher getZkw() {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    synchronized (zkwLock) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      return zkw;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>  /**<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * Closes the current ZKW (if not null) and creates a new one<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * @throws IOException If anything goes wrong connecting<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  void reloadZkWatcher() throws IOException {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    synchronized (zkwLock) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      if (zkw != null) {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        zkw.close();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      }<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      zkw = new ZKWatcher(ctx.getConfiguration(),<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        "connection to cluster: " + ctx.getPeerId(), this);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      zkw.registerListener(new PeerRegionServerListener(this));<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><a name="line.149"></a>
-<span class="sourceLineNo">150</span>  @Override<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  public void abort(String why, Throwable e) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    LOG.error("The HBaseReplicationEndpoint corresponding to peer " + ctx.getPeerId()<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        + " was aborted for the following reason(s):" + why, e);<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 boolean isAborted() {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    // Currently this is never "Aborted", we just log when the abort method is called.<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    return false;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>  /**<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * Get the list of all the region servers from the specified peer<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * @param zkw zk connection to use<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   * @return list of region server addresses or an empty list if the slave is unavailable<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   */<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  protected static List&lt;ServerName&gt; fetchSlavesAddresses(ZKWatcher zkw)<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      throws KeeperException {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    List&lt;String&gt; children = ZKUtil.listChildrenAndWatchForNewChildren(zkw, zkw.znodePaths.rsZNode);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    if (children == null) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      return Collections.emptyList();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    List&lt;ServerName&gt; addresses = new ArrayList&lt;&gt;(children.size());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    for (String child : children) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      addresses.add(ServerName.parseServerName(child));<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    return addresses;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * Get a list of all the addresses of all the region servers<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * for this peer cluster<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * @return list of addresses<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  public List&lt;ServerName&gt; getRegionServers() {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    try {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      // Synchronize peer cluster connection attempts to avoid races and rate<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      // limit connections when multiple replication sources try to connect to<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      // the peer cluster. If the peer cluster is down we can get out of control<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      // over time.<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      synchronized (zkwLock) {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        setRegionServers(fetchSlavesAddresses(zkw));<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    } catch (KeeperException ke) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      if (LOG.isDebugEnabled()) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        LOG.debug("Fetch slaves addresses failed", ke);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      reconnect(ke);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    return regionServers;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  /**<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   * Set the list of region servers for that peer<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   * @param regionServers list of addresses for the region servers<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  public synchronized void setRegionServers(List&lt;ServerName&gt; regionServers) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.regionServers = regionServers;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    lastRegionServerUpdate = System.currentTimeMillis();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>  /**<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * Get the timestamp at which the last change occurred to the list of region servers to replicate<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   * to.<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * @return The System.currentTimeMillis at the last time the list of peer region servers changed.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public long getLastRegionServerUpdate() {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    return lastRegionServerUpdate;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  /**<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * Tracks changes to the list of region servers in a peer's cluster.<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  public static class PeerRegionServerListener extends ZKListener {<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final HBaseReplicationEndpoint replicationEndpoint;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final String regionServerListNode;<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>    public PeerRegionServerListener(HBaseReplicationEndpoint replicationPeer) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      super(replicationPeer.getZkw());<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      this.replicationEndpoint = replicationPeer;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      this.regionServerListNode = replicationEndpoint.getZkw().znodePaths.rsZNode;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    @Override<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    public synchronized void nodeChildrenChanged(String path) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      if (path.equals(regionServerListNode)) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        try {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>          LOG.info("Detected change to peer region servers, fetching updated list");<a name="line.239"></a>
-<span class="sourceLineNo">240</span>          replicationEndpoint.setRegionServers(fetchSlavesAddresses(replicationEndpoint.getZkw()));<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        } catch (KeeperException e) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>          LOG.error("Error reading slave addresses", e);<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>    }<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">051</span>  private ZKWatcher zkw = null;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private List&lt;ServerName&gt; regionServers = new ArrayList&lt;&gt;(0);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  private long lastRegionServerUpdate;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  protected synchronized void disconnect() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    if (zkw != null) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      zkw.close();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * A private method used to re-establish a zookeeper session with a peer cluster.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * @param ke<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  protected void reconnect(KeeperException ke) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    if (ke instanceof ConnectionLossException || ke instanceof SessionExpiredException<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        || ke instanceof AuthFailedException) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      String clusterKey = ctx.getPeerConfig().getClusterKey();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      LOG.warn("Lost the ZooKeeper connection for peer " + clusterKey, ke);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      try {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        reloadZkWatcher();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      } catch (IOException io) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        LOG.warn("Creation of ZookeeperWatcher failed for peer " + clusterKey, io);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      }<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public void start() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    startAsync();<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>  @Override<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public void stop() {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    stopAsync();<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>  @Override<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  protected void doStart() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    try {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      reloadZkWatcher();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      notifyStarted();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    } catch (IOException e) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      notifyFailed(e);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  protected void doStop() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    disconnect();<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    notifyStopped();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>  @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  // Synchronize peer cluster connection attempts to avoid races and rate<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  // limit connections when multiple replication sources try to connect to<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  // the peer cluster. If the peer cluster is down we can get out of control<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  // over time.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public synchronized UUID getPeerUUID() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    UUID peerUUID = null;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    try {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      peerUUID = ZKClusterId.getUUIDForCluster(zkw);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    } catch (KeeperException ke) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      reconnect(ke);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return peerUUID;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /**<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   * Get the ZK connection to this peer<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * @return zk connection<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  protected synchronized ZKWatcher getZkw() {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    return zkw;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  /**<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * Closes the current ZKW (if not null) and creates a new one<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   * @throws IOException If anything goes wrong connecting<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  synchronized void reloadZkWatcher() throws IOException {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    if (zkw != null) zkw.close();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    zkw = new ZKWatcher(ctx.getConfiguration(),<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        "connection to cluster: " + ctx.getPeerId(), this);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    getZkw().registerListener(new PeerRegionServerListener(this));<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void abort(String why, Throwable e) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    LOG.error("The HBaseReplicationEndpoint corresponding to peer " + ctx.getPeerId()<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        + " was aborted for the following reason(s):" + why, e);<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>  @Override<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  public boolean isAborted() {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // Currently this is never "Aborted", we just log when the abort method is called.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    return false;<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>  /**<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * Get the list of all the region servers from the specified peer<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   * @param zkw zk connection to use<a name="line.153"></a>
+<span class="sourceLineNo">154</span>   * @return list of region server addresses or an empty list if the slave is unavailable<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  protected static List&lt;ServerName&gt; fetchSlavesAddresses(ZKWatcher zkw)<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      throws KeeperException {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    List&lt;String&gt; children = ZKUtil.listChildrenAndWatchForNewChildren(zkw, zkw.znodePaths.rsZNode);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    if (children == null) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return Collections.emptyList();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    List&lt;ServerName&gt; addresses = new ArrayList&lt;&gt;(children.size());<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    for (String child : children) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      addresses.add(ServerName.parseServerName(child));<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    return addresses;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  /**<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * Get a list of all the addresses of all the region servers<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * for this peer cluster<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @return list of addresses<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  // Synchronize peer cluster connection attempts to avoid races and rate<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  // limit connections when multiple replication sources try to connect to<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  // the peer cluster. If the peer cluster is down we can get out of control<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  // over time.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  public synchronized List&lt;ServerName&gt; getRegionServers() {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    try {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      setRegionServers(fetchSlavesAddresses(this.getZkw()));<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    } catch (KeeperException ke) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      if (LOG.isDebugEnabled()) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        LOG.debug("Fetch slaves addresses failed", ke);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      reconnect(ke);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    return regionServers;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>  /**<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   * Set the list of region servers for that peer<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   * @param regionServers list of addresses for the region servers<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public synchronized void setRegionServers(List&lt;ServerName&gt; regionServers) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.regionServers = regionServers;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    lastRegionServerUpdate = System.currentTimeMillis();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  /**<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   * Get the timestamp at which the last change occurred to the list of region servers to replicate<a name="line.200"></a>
+<span class="sourceLineNo">201</span>   * to.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>   * @return The System.currentTimeMillis at the last time the list of peer region servers changed.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public long getLastRegionServerUpdate() {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    return lastRegionServerUpdate;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   * Tracks changes to the list of region servers in a peer's cluster.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   */<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  public static class PeerRegionServerListener extends ZKListener {<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>    private final HBaseReplicationEndpoint replicationEndpoint;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    private final String regionServerListNode;<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public PeerRegionServerListener(HBaseReplicationEndpoint replicationPeer) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      super(replicationPeer.getZkw());<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      this.replicationEndpoint = replicationPeer;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      this.regionServerListNode = replicationEndpoint.getZkw().znodePaths.rsZNode;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>    @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    public synchronized void nodeChildrenChanged(String path) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      if (path.equals(regionServerListNode)) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        try {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          LOG.info("Detected change to peer region servers, fetching updated list");<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          replicationEndpoint.setRegionServers(fetchSlavesAddresses(replicationEndpoint.getZkw()));<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        } catch (KeeperException e) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          LOG.error("Error reading slave addresses", e);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        }<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>}<a name="line.234"></a>
 
 
 


[40/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html
index a267579..2d8d745 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html
@@ -1244,56 +1244,61 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">executeFromState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+                org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState-">executeFromState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">executeFromState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TruncateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.TruncateTableState-">executeFromState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.TruncateTableState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ProcedureSyncWait.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ProcedureSyncWait.html#getMasterQuotaManager-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">getMasterQuotaManager</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#getProcedureMetrics-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">getProcedureMetrics</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractStateMachineTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#getRegionDir-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.client.RegionInfo-">getRegionDir</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
             <a href="../../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html#getRegionInfoList-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">getRegionInfoList</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/master/TableNamespaceManager.html" title="class in org.apache.hadoop.hbase.master">TableNamespaceManager</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html#getTableNamespaceManager-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">getTableNamespaceManager</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/master/TableNamespaceManager.html" title="class in org.apache.hadoop.hbase.master">TableNamespaceManager</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CreateNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html#getTableNamespaceManager-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">getTableNamespaceManager</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/master/TableNamespaceManager.html" title="class in org.apache.hadoop.hbase.master">TableNamespaceManager</a></code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#getTableNamespaceManager-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">getTableNamespaceManager</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#handleRIT-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-java.util.List-">handleRIT</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)</code>
 <div class="block">Handle any outstanding RIT that are up against this.serverName, the crashed server.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RecoverMetaProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#handleRIT-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">handleRIT</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
          <a href="../../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;ri,
@@ -1303,28 +1308,28 @@
  to carry.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractStateMachineRegionProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html#hasLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">hasLock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractStateMachineRegionProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html#holdLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">holdLock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html#insertIntoNSTable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">insertIntoNSTable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Insert/update the row into namespace table</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html#insertIntoNSTable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.NamespaceDescriptor-">insertIntoNSTable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                  <a href="../../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;nsDescriptor)</code>
 <div class="block">Insert the row into ns table</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#isYieldBeforeExecuteFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">isYieldBeforeExecuteFromState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&nbsp;state)</code>
@@ -1333,303 +1338,308 @@
  before we move to the next.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html#moveTempDirectoryToHBaseRoot-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.fs.Path-">moveTempDirectoryToHBaseRoot</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                             <a href="../../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                             org.apache.hadoop.fs.Path&nbsp;tempTableDir)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">CloneSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#postCloneSnapshot-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">postCloneSnapshot</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action after cloning from snapshot.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html#postCreate-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">postCreate</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html#postDelete-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">postDelete</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">DisableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html#postDisable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DisableTableState-">postDisable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
            org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DisableTableState&nbsp;state)</code>
 <div class="block">Action after disabling table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">EnableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#postEnable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState-">postEnable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</code>
 <div class="block">Action after enabling table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html#postModify-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ModifyTableState-">postModify</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ModifyTableState&nbsp;state)</code>
 <div class="block">Action after modifying table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">TruncateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#postTruncate-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">postTruncate</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">CloneSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#preCloneSnapshot-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">preCloneSnapshot</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before cloning from snapshot.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html#preCreate-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">preCreate</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html#preDelete-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">preDelete</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">DisableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html#preDisable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DisableTableState-">preDisable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DisableTableState&nbsp;state)</code>
 <div class="block">Action before disabling table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">EnableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#preEnable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState-">preEnable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
          org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</code>
 <div class="block">Action before enabling table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractStateMachineTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#preflightChecks-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-java.lang.Boolean-">preflightChecks</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;enabled)</code>
 <div class="block">Check that cluster is up and master is running.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html#preModify-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ModifyTableState-">preModify</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
          org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ModifyTableState&nbsp;state)</code>
 <div class="block">Action before modifying table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RecoverMetaProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#prepare-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepare</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Prepare for execution</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">CloneSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#prepareClone-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareClone</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of cloning from snapshot.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html#prepareCreate-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareCreate</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html#prepareCreate-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareCreate</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of creating namespace.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html#prepareDelete-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareDelete</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#prepareDelete-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareDelete</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of deleting namespace.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">DisableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html#prepareDisable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareDisable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of disabling table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">EnableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#prepareEnable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareEnable</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of enabling table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html#prepareModify-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareModify</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of adding namespace.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html#prepareModify-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareModify</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Check conditions before any real action of modifying a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#prepareRestore-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareRestore</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Action before any real action of restoring from snapshot.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">TruncateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#prepareTruncate-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">prepareTruncate</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">TruncateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#preTruncate-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">preTruncate</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#processMeta-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">processMeta</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">RecoverMetaProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#releaseLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">releaseLock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractStateMachineRegionProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html#releaseLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">releaseLock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractStateMachineTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#releaseLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">releaseLock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#releaseLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">releaseLock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractStateMachineNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html#releaseLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">releaseLock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSProcedureDispatcher.CloseRegionRemoteCall.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CloseRegionRemoteCall.html#remoteCallCompleted-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse-">remoteCallCompleted</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                    org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse&nbsp;response)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSProcedureDispatcher.ExecuteProceduresRemoteCall.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html#remoteCallFailed-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-java.io.IOException-">remoteCallFailed</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSProcedureDispatcher.OpenRegionRemoteCall.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.OpenRegionRemoteCall.html#remoteCallFailed-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-java.io.IOException-">remoteCallFailed</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSProcedureDispatcher.CloseRegionRemoteCall.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CloseRegionRemoteCall.html#remoteCallFailed-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-java.io.IOException-">remoteCallFailed</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;e)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#removeFromZKNamespaceManager-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-java.lang.String-">removeFromZKNamespaceManager</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</code>
 <div class="block">remove from ZooKeeper.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#removeNamespaceQuota-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-java.lang.String-">removeNamespaceQuota</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</code>
 <div class="block">remove quota for the namespace</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#restoreSnapshot-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">restoreSnapshot</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Execute the on-disk Restore</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#restoreSnapshotAcl-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">restoreSnapshotAcl</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">CloneSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#restoreSnapshotAcl-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">restoreSnapshotAcl</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html#restoreTableDescriptor-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">restoreTableDescriptor</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">Undo the descriptor change (for rollback)</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#rollbackDeleteDirectory-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">rollbackDeleteDirectory</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">undo delete directory</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html#rollbackSetNamespaceQuota-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">rollbackSetNamespaceQuota</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
 <div class="block">remove quota for the namespace if exists</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">CloneSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CloneSnapshotState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CreateNamespaceState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CreateNamespaceState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">CreateTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CreateTableState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.CreateTableState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DeleteNamespaceState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DeleteNamespaceState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">DeleteTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DeleteTableState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DeleteTableState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">DisableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DisableTableState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.DisableTableState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">EnableTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.EnableTableState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ModifyNamespaceState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ModifyNamespaceState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">ModifyTableProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ModifyTableState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ModifyTableState&nbsp;state)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">RecoverMetaProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RecoverMetaState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RecoverMetaState&nbsp;recoverMetaState)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">RestoreSnapshotProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RestoreSnapshotState-">rollbackState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/ReopenTableRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/ReopenTableRegionsProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/ReopenTableRegionsProcedure.html
new file mode 100644
index 0000000..0ea8da5
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/ReopenTableRegionsProcedure.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.master.procedure.ReopenTableRegionsProcedure (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.master.procedure.ReopenTableRegionsProcedure (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/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">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/master/procedure/class-use/ReopenTableRegionsProcedure.html" target="_top">Frames</a></li>
+<li><a href="ReopenTableRegionsProcedure.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.master.procedure.ReopenTableRegionsProcedure" class="title">Uses of Class<br>org.apache.hadoop.hbase.master.procedure.ReopenTableRegionsProcedure</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.master.procedure.ReopenTableRegionsProcedure</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/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">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/master/procedure/class-use/ReopenTableRegionsProcedure.html" target="_top">Frames</a></li>
+<li><a href="ReopenTableRegionsProcedure.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;2018 <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/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.TableOperationType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.TableOperationType.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.TableOperationType.html
index a71b8e7..f99ab8c 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.TableOperationType.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.TableOperationType.html
@@ -247,15 +247,19 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a></code></td>
-<td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#getTableOperationType--">getTableOperationType</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ReopenTableRegionsProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getTableOperationType--">getTableOperationType</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DeleteNamespaceProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html#getTableOperationType--">getTableOperationType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TableProcedureInterface.TableOperationType.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>[]</code></td>
 <td class="colLast"><span class="typeNameLabel">TableProcedureInterface.TableOperationType.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html#values--">values</a></span>()</code>
 <div class="block">Returns an array containing the constants of this enum type, in

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.html
index 1f9359d..91ac111 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/TableProcedureInterface.html
@@ -262,10 +262,16 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></span></code>
+<div class="block">Used for non table procedures to reopen the regions for a table.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a></span></code>&nbsp;</td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-frame.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-frame.html
index fc3ce02..31681be 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-frame.html
@@ -52,6 +52,7 @@
 <li><a href="ProcedureSyncWait.ProcedureFuture.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">ProcedureSyncWait.ProcedureFuture</a></li>
 <li><a href="Queue.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">Queue</a></li>
 <li><a href="RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">RecoverMetaProcedure</a></li>
+<li><a href="ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">ReopenTableRegionsProcedure</a></li>
 <li><a href="RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">RestoreSnapshotProcedure</a></li>
 <li><a href="RSProcedureDispatcher.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">RSProcedureDispatcher</a></li>
 <li><a href="RSProcedureDispatcher.RegionCloseOperation.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">RSProcedureDispatcher.RegionCloseOperation</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-summary.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-summary.html
index cccd636..fae65b1 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-summary.html
@@ -269,53 +269,59 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></td>
+<td class="colLast">
+<div class="block">Used for non table procedures to reopen the regions for a table.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher</a></td>
 <td class="colLast">
 <div class="block">A remote procecdure dispatcher for regionservers.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher.RegionCloseOperation</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher.RegionOpenOperation</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher.RegionOperation</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html" title="class in org.apache.hadoop.hbase.master.procedure">RSProcedureDispatcher.ServerOperation</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/SchemaLocking.html" title="class in org.apache.hadoop.hbase.master.procedure">SchemaLocking</a></td>
 <td class="colLast">
 <div class="block">
  Locks on namespaces, tables, and regions.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></td>
 <td class="colLast">
 <div class="block">Handle crashed server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerQueue</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableQueue.html" title="class in org.apache.hadoop.hbase.master.procedure">TableQueue</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index e602642..2a9835b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -129,6 +129,7 @@
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">DisableTableProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">EnableTableProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ModifyTableProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ReopenTableRegionsProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">RestoreSnapshotProcedure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TruncateTableProcedure</span></a></li>
 </ul>
@@ -208,9 +209,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html
index c22d86b..c02b08e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html
@@ -288,7 +288,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/P
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/proce
 dure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMach
 ineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-T
 Environment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">


[18/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a name="line.1364"></a>


<TRUNCATED>

[23/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closi

<TRUNCATED>

[36/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
index f668456..3cc87d3 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6189">HRegion.RegionScannerImpl</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6195">HRegion.RegionScannerImpl</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a></pre>
 <div class="block">RegionScannerImpl is used to combine scanners from multiple Stores (aka column families).</div>
@@ -425,7 +425,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>storeHeap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6192">storeHeap</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6198">storeHeap</a></pre>
 </li>
 </ul>
 <a name="joinedHeap">
@@ -434,7 +434,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedHeap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6195">joinedHeap</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6201">joinedHeap</a></pre>
 <div class="block">Heap of key-values that are not essential for the provided filters and are thus read
  on demand, if on-demand column family loading is enabled.</div>
 </li>
@@ -445,7 +445,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedContinuationRow</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6199">joinedContinuationRow</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6205">joinedContinuationRow</a></pre>
 <div class="block">If the joined heap data gathering is interrupted due to scan limits, this will
  contain the row for which we are populating the values.</div>
 </li>
@@ -456,7 +456,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterClosed</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6200">filterClosed</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6206">filterClosed</a></pre>
 </li>
 </ul>
 <a name="stopRow">
@@ -465,7 +465,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>stopRow</h4>
-<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6202">stopRow</a></pre>
+<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6208">stopRow</a></pre>
 </li>
 </ul>
 <a name="includeStopRow">
@@ -474,7 +474,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>includeStopRow</h4>
-<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6203">includeStopRow</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6209">includeStopRow</a></pre>
 </li>
 </ul>
 <a name="region">
@@ -483,7 +483,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>region</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6204">region</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6210">region</a></pre>
 </li>
 </ul>
 <a name="comparator">
@@ -492,7 +492,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>comparator</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6205">comparator</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6211">comparator</a></pre>
 </li>
 </ul>
 <a name="readPt">
@@ -501,7 +501,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>readPt</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6207">readPt</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6213">readPt</a></pre>
 </li>
 </ul>
 <a name="maxResultSize">
@@ -510,7 +510,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>maxResultSize</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6208">maxResultSize</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6214">maxResultSize</a></pre>
 </li>
 </ul>
 <a name="defaultScannerContext">
@@ -519,7 +519,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>defaultScannerContext</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6209">defaultScannerContext</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6215">defaultScannerContext</a></pre>
 </li>
 </ul>
 <a name="filter">
@@ -528,7 +528,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>filter</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6210">filter</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6216">filter</a></pre>
 </li>
 </ul>
 </li>
@@ -545,7 +545,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>RegionScannerImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6217">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6223">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -561,7 +561,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionScannerImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6222">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6228">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                   long&nbsp;nonceGroup,
@@ -587,7 +587,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6213">getRegionInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6219">getRegionInfo</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getRegionInfo--">getRegionInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -602,7 +602,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeScanners</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6260">initializeScanners</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6266">initializeScanners</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners)
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -617,7 +617,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeKVHeap</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6292">initializeKVHeap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6298">initializeKVHeap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;joinedScanners,
                                 <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -633,7 +633,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>handleException</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6301">handleException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;instantiatedScanners,
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6307">handleException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;instantiatedScanners,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
 </li>
 </ul>
@@ -643,7 +643,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxResultSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6322">getMaxResultSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6328">getMaxResultSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getMaxResultSize--">getMaxResultSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -659,7 +659,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getMvccReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6327">getMvccReadPoint</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6333">getMvccReadPoint</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getMvccReadPoint--">getMvccReadPoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -674,7 +674,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getBatch</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6332">getBatch</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6338">getBatch</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getBatch--">getBatch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -690,7 +690,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>resetFilters</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6341">resetFilters</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6347">resetFilters</a>()
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Reset both the filter and the old filter.</div>
 <dl>
@@ -705,7 +705,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6348">next</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6354">next</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-">InternalScanner</a></code></span></div>
 <div class="block">Grab the next row's worth of values.</div>
@@ -727,7 +727,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6355">next</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6361">next</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">InternalScanner</a></code></span></div>
@@ -750,7 +750,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRaw</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6371">nextRaw</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6377">nextRaw</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#nextRaw-java.util.List-">RegionScanner</a></code></span></div>
 <div class="block">Grab the next row's worth of values. This is a special internal method to be called from
@@ -775,7 +775,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRaw</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6377">nextRaw</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6383">nextRaw</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#nextRaw-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">RegionScanner</a></code></span></div>
@@ -821,7 +821,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>populateFromJoinedHeap</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6414">populateFromJoinedHeap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6420">populateFromJoinedHeap</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
                                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -838,7 +838,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>populateResult</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6438">populateResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6444">populateResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;heap,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
                                <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
@@ -863,7 +863,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>moreCellsInRow</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6479">moreCellsInRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;nextKv,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6485">moreCellsInRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;nextKv,
                                <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
 <div class="block">Based on the nextKv in the heap, and the current row, decide whether or not there are more
  cells to be read in the heap. If the row of the nextKv in the heap matches the current row
@@ -883,7 +883,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>isFilterDone</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6487">isFilterDone</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6493">isFilterDone</a>()
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -901,7 +901,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>isFilterDoneInternal</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6491">isFilterDoneInternal</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6497">isFilterDoneInternal</a>()
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -915,7 +915,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextInternal</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6495">nextInternal</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6501">nextInternal</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -930,7 +930,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementCountOfRowsFilteredMetric</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6718">incrementCountOfRowsFilteredMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6724">incrementCountOfRowsFilteredMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
 </li>
 </ul>
 <a name="incrementCountOfRowsScannedMetric-org.apache.hadoop.hbase.regionserver.ScannerContext-">
@@ -939,7 +939,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementCountOfRowsScannedMetric</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6726">incrementCountOfRowsScannedMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6732">incrementCountOfRowsScannedMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
 </li>
 </ul>
 <a name="joinedHeapMayHaveData-org.apache.hadoop.hbase.Cell-">
@@ -948,7 +948,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedHeapMayHaveData</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6737">joinedHeapMayHaveData</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6743">joinedHeapMayHaveData</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -966,7 +966,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterRow</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6764">filterRow</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6770">filterRow</a>()
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This function is to maintain backward compatibility for 0.94 filters. HBASE-6429 combines
  both filterRow & filterRow(<code>List&lt;KeyValue&gt; kvs</code>) functions. While 0.94 code or older,
@@ -985,7 +985,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterRowKey</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6771">filterRowKey</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;current)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6777">filterRowKey</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;current)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -999,7 +999,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRow</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6775">nextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6781">nextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
                           <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;curRowCell)
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1014,7 +1014,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldStop</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6790">shouldStop</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6796">shouldStop</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
 </li>
 </ul>
 <a name="close--">
@@ -1023,7 +1023,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6802">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6808">close</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#close--">InternalScanner</a></code></span></div>
 <div class="block">Closes the scanner and releases any resources it has allocated</div>
 <dl>
@@ -1042,7 +1042,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreHeapForTesting</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6816">getStoreHeapForTesting</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6822">getStoreHeapForTesting</a>()</pre>
 </li>
 </ul>
 <a name="reseek-byte:A-">
@@ -1051,7 +1051,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>reseek</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6821">reseek</a>(byte[]&nbsp;row)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6827">reseek</a>(byte[]&nbsp;row)
                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#reseek-byte:A-">RegionScanner</a></code></span></div>
 <div class="block">Do a reseek to the required row. Should not be used to seek to a key which
@@ -1071,7 +1071,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>shipped</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6841">shipped</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6847">shipped</a>()
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html#shipped--">Shipper</a></code></span></div>
 <div class="block">Called after a batch of rows scanned and set to be returned to client. Any in between cleanup
@@ -1090,7 +1090,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6851">run</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6857">run</a>()
          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html#run--">RpcCallback</a></code></span></div>
 <div class="block">Called at the end of an Rpc Call <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc"><code>RpcCallContext</code></a></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
index d291e35..218f1d1 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3736">HRegion.ReplayBatchOperation</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3742">HRegion.ReplayBatchOperation</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</pre>
 <div class="block">Batch of mutations for replay. Base class is shared with <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegion.MutationBatchOperation</code></a> as most
  of the logic is same.</div>
@@ -306,7 +306,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>origLogSeqNum</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3737">origLogSeqNum</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3743">origLogSeqNum</a></pre>
 </li>
 </ul>
 </li>
@@ -323,7 +323,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReplayBatchOperation</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3738">ReplayBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3744">ReplayBatchOperation</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/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[]&nbsp;operations,
                             long&nbsp;origLogSeqNum)</pre>
 </li>
@@ -342,7 +342,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3745">getMutation</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3751">getMutation</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutation-int-">getMutation</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -355,7 +355,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3750">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3756">getNonceGroup</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonceGroup-int-">getNonceGroup</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -368,7 +368,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3755">getNonce</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3761">getNonce</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonce-int-">getNonce</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -381,7 +381,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3760">getMutationsForCoprocs</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3766">getMutationsForCoprocs</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutationsForCoprocs--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
 <dl>
@@ -396,7 +396,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3765">isInReplay</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3771">isInReplay</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#isInReplay--">isInReplay</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -409,7 +409,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrigLogSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3770">getOrigLogSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3776">getOrigLogSeqNum</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getOrigLogSeqNum--">getOrigLogSeqNum</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -422,7 +422,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>startRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3775">startRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3781">startRegionOperation</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -438,7 +438,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3780">closeRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3786">closeRegionOperation</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -454,7 +454,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPreparePut</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3789">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3795">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">During replay, there could exist column families which are removed between region server
  failure and replay</div>
@@ -472,7 +472,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepare</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3810">checkAndPrepare</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3816">checkAndPrepare</a>()
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepare--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
@@ -494,7 +494,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3819">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3825">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                        long&nbsp;timestamp,
                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -515,7 +515,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3831">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3837">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                                                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                                                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#writeMiniBatchOperationsToMemStore-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>
@@ -534,7 +534,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>completeMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3839">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3845">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#completeMiniBatchOperations-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
index 9a75f79..41192b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5797">HRegion.RowLockContext</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5803">HRegion.RowLockContext</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -241,7 +241,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>row</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5798">row</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5804">row</a></pre>
 </li>
 </ul>
 <a name="readWriteLock">
@@ -250,7 +250,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>readWriteLock</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5799">readWriteLock</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5805">readWriteLock</a></pre>
 </li>
 </ul>
 <a name="usable">
@@ -259,7 +259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>usable</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5800">usable</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5806">usable</a></pre>
 </li>
 </ul>
 <a name="count">
@@ -268,7 +268,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>count</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5801">count</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5807">count</a></pre>
 </li>
 </ul>
 <a name="lock">
@@ -277,7 +277,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>lock</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5802">lock</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5808">lock</a></pre>
 </li>
 </ul>
 <a name="threadName">
@@ -286,7 +286,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>threadName</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5803">threadName</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5809">threadName</a></pre>
 </li>
 </ul>
 </li>
@@ -303,7 +303,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RowLockContext</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5805">RowLockContext</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a>&nbsp;row)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5811">RowLockContext</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a>&nbsp;row)</pre>
 </li>
 </ul>
 </li>
@@ -320,7 +320,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>newWriteLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5809">newWriteLock</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5815">newWriteLock</a>()</pre>
 </li>
 </ul>
 <a name="newReadLock--">
@@ -329,7 +329,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>newReadLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5813">newReadLock</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5819">newReadLock</a>()</pre>
 </li>
 </ul>
 <a name="getRowLock-java.util.concurrent.locks.Lock-">
@@ -338,7 +338,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowLock</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5818">getRowLock</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;l)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5824">getRowLock</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;l)</pre>
 </li>
 </ul>
 <a name="cleanUp--">
@@ -347,7 +347,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanUp</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5829">cleanUp</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5835">cleanUp</a>()</pre>
 </li>
 </ul>
 <a name="setThreadName-java.lang.String-">
@@ -356,7 +356,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setThreadName</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5842">setThreadName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5848">setThreadName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadName)</pre>
 </li>
 </ul>
 <a name="toString--">
@@ -365,7 +365,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5847">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5853">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
index cbb0f00..3ca104e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5860">HRegion.RowLockImpl</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5866">HRegion.RowLockImpl</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a></pre>
 <div class="block">Class used to represent a lock on a row.</div>
@@ -226,7 +226,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>context</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5861">context</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5867">context</a></pre>
 </li>
 </ul>
 <a name="lock">
@@ -235,7 +235,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lock</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5862">lock</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5868">lock</a></pre>
 </li>
 </ul>
 </li>
@@ -252,7 +252,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RowLockImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5864">RowLockImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;context,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5870">RowLockImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;context,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;lock)</pre>
 </li>
 </ul>
@@ -270,7 +270,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>getLock</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5869">getLock</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5875">getLock</a>()</pre>
 </li>
 </ul>
 <a name="getContext--">
@@ -279,7 +279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>getContext</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5874">getContext</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5880">getContext</a>()</pre>
 </li>
 </ul>
 <a name="release--">
@@ -288,7 +288,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>release</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5879">release</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5885">release</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html#release--">Region.RowLock</a></code></span></div>
 <div class="block">Release the given lock.  If there are no remaining locks held by the current thread
  then unlock the row and allow other threads to acquire the lock.</div>
@@ -304,7 +304,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5885">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5891">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>


[39/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html
index 1dd84e7..930f6db 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/AddPeerProcedure.html
@@ -329,7 +329,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html
index 9f265df..97619ef 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/DisablePeerProcedure.html
@@ -298,7 +298,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html
index 73bc01c..6763db0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/EnablePeerProcedure.html
@@ -298,7 +298,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
index a4a3adc..890dc44 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html
@@ -133,7 +133,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public abstract class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.51">ModifyPeerProcedure</a>
+public abstract class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.52">ModifyPeerProcedure</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html" title="class in org.apache.hadoop.hbase.master.replication">AbstractPeerProcedure</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.PeerModificationState&gt;</pre>
 <div class="block">The base class for all replication peer related procedure except sync replication state
  transition.</div>
@@ -375,7 +375,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
@@ -418,7 +418,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.53">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.54">LOG</a></pre>
 </li>
 </ul>
 <a name="UPDATE_LAST_SEQ_ID_BATCH_SIZE">
@@ -427,7 +427,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>UPDATE_LAST_SEQ_ID_BATCH_SIZE</h4>
-<pre>protected static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.55">UPDATE_LAST_SEQ_ID_BATCH_SIZE</a></pre>
+<pre>protected static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.56">UPDATE_LAST_SEQ_ID_BATCH_SIZE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.replication.ModifyPeerProcedure.UPDATE_LAST_SEQ_ID_BATCH_SIZE">Constant Field Values</a></dd>
@@ -440,7 +440,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SLEEP_INTERVAL_MS</h4>
-<pre>protected static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.58">SLEEP_INTERVAL_MS</a></pre>
+<pre>protected static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.59">SLEEP_INTERVAL_MS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.replication.ModifyPeerProcedure.SLEEP_INTERVAL_MS">Constant Field Values</a></dd>
@@ -461,7 +461,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>ModifyPeerProcedure</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.60">ModifyPeerProcedure</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.61">ModifyPeerProcedure</a>()</pre>
 </li>
 </ul>
 <a name="ModifyPeerProcedure-java.lang.String-">
@@ -470,7 +470,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ModifyPeerProcedure</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.63">ModifyPeerProcedure</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</pre>
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.64">ModifyPeerProcedure</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</pre>
 </li>
 </ul>
 </li>
@@ -487,7 +487,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>prePeerModification</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.74">prePeerModification</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.75">prePeerModification</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                             <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a></pre>
 <div class="block">Called before we start the actual processing. The implementation should call the pre CP hook,
@@ -508,7 +508,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePeerStorage</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.77">updatePeerStorage</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.78">updatePeerStorage</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                                    throws <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -522,7 +522,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>postPeerModification</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.88">postPeerModification</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.89">postPeerModification</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                              <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a></pre>
 <div class="block">Called before we finish the procedure. The implementation can do some logging work, and also
@@ -545,7 +545,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>releaseLatch</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.91">releaseLatch</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.92">releaseLatch</a>()</pre>
 </li>
 </ul>
 <a name="nextStateAfterRefresh--">
@@ -554,7 +554,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>nextStateAfterRefresh</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.PeerModificationState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.99">nextStateAfterRefresh</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.PeerModificationState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.100">nextStateAfterRefresh</a>()</pre>
 <div class="block">Implementation class can override this method. By default we will jump to
  POST_PEER_MODIFICATION and finish the procedure.</div>
 </li>
@@ -565,7 +565,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>enablePeerBeforeFinish</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.107">enablePeerBeforeFinish</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.108">enablePeerBeforeFinish</a>()</pre>
 <div class="block">The implementation class should override this method if the procedure may enter the serial
  related states.</div>
 </li>
@@ -576,7 +576,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>refreshPeer</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.111">refreshPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.112">refreshPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                          <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">PeerProcedureInterface.PeerOperationType</a>&nbsp;type)</pre>
 </li>
 </ul>
@@ -586,7 +586,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>getOldPeerConfig</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.117">getOldPeerConfig</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.118">getOldPeerConfig</a>()</pre>
 </li>
 </ul>
 <a name="getNewPeerConfig--">
@@ -595,7 +595,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>getNewPeerConfig</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.121">getNewPeerConfig</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.122">getNewPeerConfig</a>()</pre>
 </li>
 </ul>
 <a name="updateLastPushedSequenceIdForSerialPeer-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
@@ -604,7 +604,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>updateLastPushedSequenceIdForSerialPeer</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.125">updateLastPushedSequenceIdForSerialPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.126">updateLastPushedSequenceIdForSerialPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                        <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a></pre>
 <dl>
@@ -620,7 +620,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>needReopen</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.132">needReopen</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;tsm,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.133">needReopen</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;tsm,
                            <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn)
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -635,7 +635,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Ab
 <ul class="blockList">
 <li class="blockList">
 <h4>reopenRegions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.151">reopenRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html#line.152">reopenRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html
index 985b125..3c3b9b1 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/RemovePeerProcedure.html
@@ -302,7 +302,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html
index 4783645..3ea18a0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/replication/UpdatePeerConfigProcedure.html
@@ -342,7 +342,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/replication/Mo
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/net/Address.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/net/Address.html b/devapidocs/org/apache/hadoop/hbase/net/Address.html
index dfaa411..b7bc333 100644
--- a/devapidocs/org/apache/hadoop/hbase/net/Address.html
+++ b/devapidocs/org/apache/hadoop/hbase/net/Address.html
@@ -120,7 +120,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparab
 <div class="block">An immutable type to hold a hostname and port combo, like an Endpoint
  or java.net.InetSocketAddress (but without danger of our calling
  resolve -- we do NOT want a resolve happening every time we want
- to hold a hostname and port combo). This class is also <<Comparable>>.
+ to hold a hostname and port combo). This class is also <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang"><code>Comparable</code></a>
  <p>In implementation this class is a facade over Guava's <code>HostAndPort</code>.
  We cannot have Guava classes in our API hence this Type.</div>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html b/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html
index 5cc472a..388f232 100644
--- a/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html
+++ b/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html
@@ -105,10 +105,6 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.security.access">org.apache.hadoop.hbase.security.access</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.tmpl.master">org.apache.hadoop.hbase.tmpl.master</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -576,38 +572,6 @@
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.hadoop.hbase.security.access">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a> in <a href="../../../../../../org/apache/hadoop/hbase/security/access/package-summary.html">org.apache.hadoop.hbase.security.access</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Method parameters in <a href="../../../../../../org/apache/hadoop/hbase/security/access/package-summary.html">org.apache.hadoop.hbase.security.access</a> with type arguments of type <a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</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>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/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;tables,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.tmpl.master">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/net/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/net/package-use.html b/devapidocs/org/apache/hadoop/hbase/net/package-use.html
index 60176ad..f5811e1 100644
--- a/devapidocs/org/apache/hadoop/hbase/net/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/net/package-use.html
@@ -105,10 +105,6 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.security.access">org.apache.hadoop.hbase.security.access</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.tmpl.master">org.apache.hadoop.hbase.tmpl.master</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -215,26 +211,6 @@
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.hadoop.hbase.security.access">
-<!--   -->
-</a>
-<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/net/package-summary.html">org.apache.hadoop.hbase.net</a> used by <a href="../../../../../org/apache/hadoop/hbase/security/access/package-summary.html">org.apache.hadoop.hbase.security.access</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Class and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/net/class-use/Address.html#org.apache.hadoop.hbase.security.access">Address</a>
-<div class="block">An immutable type to hold a hostname and port combo, like an Endpoint
- or java.net.InetSocketAddress (but without danger of our calling
- resolve -- we do NOT want a resolve happening every time we want
- to hold a hostname and port combo).</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.tmpl.master">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 b7e4bfe..0a434f4 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -437,19 +437,19 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
index 211b01b..3dbc7ec 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html
@@ -266,8 +266,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&gt;...&nbsp;subProcedure)</code>
+<td class="colFirst"><code>protected &lt;T extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&gt;&gt;<br>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a></span>(T...&nbsp;subProcedure)</code>
 <div class="block">Add a child procedure to execute</div>
 </td>
 </tr>
@@ -682,13 +682,15 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 </dl>
 </li>
 </ul>
-<a name="addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">
+<a name="addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure:A-">
+<!--   -->
+</a><a name="addChildProcedure-T...-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>addChildProcedure</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.145">addChildProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&gt;...&nbsp;subProcedure)</pre>
+<pre>protected&nbsp;&lt;T extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&gt;&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.145">addChildProcedure</a>(T...&nbsp;subProcedure)</pre>
 <div class="block">Add a child procedure to execute</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -704,7 +706,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>execute</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.160">execute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&nbsp;env)
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.165">execute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&nbsp;env)
                        throws <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</a>,
                               <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a>,
                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -736,7 +738,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>rollback</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.198">rollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&nbsp;env)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.203">rollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&nbsp;env)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">Procedure</a></code></span></div>
@@ -763,7 +765,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>isEofState</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.210">isEofState</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.215">isEofState</a>()</pre>
 </li>
 </ul>
 <a name="abort-java.lang.Object-">
@@ -774,7 +776,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.215">abort</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.220">abort</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">The abort() call is asynchronous and each procedure must decide how to deal
  with it, if they want to be abortable. The simplest implementation
@@ -797,7 +799,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>failIfAborted</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.229">failIfAborted</a>()</pre>
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.234">failIfAborted</a>()</pre>
 <div class="block">If procedure has more states then abort it otherwise procedure is finished and abort can be
  ignored.</div>
 </li>
@@ -810,7 +812,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>isRollbackSupported</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.243">isRollbackSupported</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TState</a>&nbsp;state)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.248">isRollbackSupported</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TState</a>&nbsp;state)</pre>
 <div class="block">Used by the default implementation of abort() to know if the current state can be aborted
  and rollback can be triggered.</div>
 </li>
@@ -823,7 +825,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>isYieldAfterExecutionStep</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.248">isYieldAfterExecutionStep</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.253">isYieldAfterExecutionStep</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">By default, the procedure framework/executor will try to run procedures start to finish.
  Return true to make the executor yield between each execution step to
@@ -845,7 +847,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>hasMoreState</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.252">hasMoreState</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.257">hasMoreState</a>()</pre>
 </li>
 </ul>
 <a name="getCurrentState--">
@@ -854,7 +856,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentState</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.256">getCurrentState</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.261">getCurrentState</a>()</pre>
 </li>
 </ul>
 <a name="getCurrentStateId--">
@@ -863,7 +865,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentStateId</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.266">getCurrentStateId</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.271">getCurrentStateId</a>()</pre>
 <div class="block">This method is used from test code as it cannot be assumed that state transition will happen
  sequentially. Some procedures may skip steps/ states, some may add intermediate steps in
  future.</div>
@@ -875,7 +877,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>setNextState</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.274">setNextState</a>(int&nbsp;stateId)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.279">setNextState</a>(int&nbsp;stateId)</pre>
 <div class="block">Set the next state for the procedure.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -889,7 +891,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.287">toStringState</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.292">toStringState</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;builder)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">Procedure</a></code></span></div>
 <div class="block">Called from <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--"><code>Procedure.toString()</code></a> when interpolating <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2"><code>Procedure</code></a> State.
  Allows decorating generic Procedure State with Procedure particulars.</div>
@@ -907,7 +909,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>serializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.295">serializeStateData</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.300">serializeStateData</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">The user-level code of the procedure may have some state to
@@ -929,7 +931,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>deserializeStateData</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.305">deserializeStateData</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#line.310">deserializeStateData</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
 <div class="block">Called on store load to allow the user to decode the previously serialized

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html
index 8caa557..b0e4620 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/class-use/Procedure.html
@@ -390,15 +390,21 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></span></code>
+<div class="block">Used for non table procedures to reopen the regions for a table.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></span></code>
 <div class="block">Handle crashed server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a></span></code>&nbsp;</td>
 </tr>
@@ -900,6 +906,12 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code>protected &lt;T extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&gt;&gt;<br>void</code></td>
+<td class="colLast"><span class="typeNameLabel">StateMachineProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a></span>(T...&nbsp;subProcedure)</code>
+<div class="block">Add a child procedure to execute</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>&lt;T extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&gt;<br>T</code></td>
 <td class="colLast"><span class="typeNameLabel">ProcedureExecutor.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getProcedure-java.lang.Class-long-">getProcedure</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
             long&nbsp;procId)</code>&nbsp;</td>
@@ -1083,8 +1095,8 @@
 <td class="colLast"><span class="typeNameLabel">AbstractProcedureScheduler.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#addBack-org.apache.hadoop.hbase.procedure2.Procedure-">addBack</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&nbsp;procedure)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">StateMachineProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&gt;...&nbsp;subProcedure)</code>
+<td class="colFirst"><code>protected &lt;T extends <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="type parameter in StateMachineProcedure">TEnvironment</a>&gt;&gt;<br>void</code></td>
+<td class="colLast"><span class="typeNameLabel">StateMachineProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a></span>(T...&nbsp;subProcedure)</code>
 <div class="block">Add a child procedure to execute</div>
 </td>
 </tr>


[41/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
new file mode 100644
index 0000000..c869777
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html
@@ -0,0 +1,640 @@
+<!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>ReopenTableRegionsProcedure (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="ReopenTableRegionsProcedure (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/ReopenTableRegionsProcedure.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/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" target="_top">Frames</a></li>
+<li><a href="ReopenTableRegionsProcedure.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.classes.inherited.from.class.org.apache.hadoop.hbase.procedure2.StateMachineProcedure">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.master.procedure</div>
+<h2 title="Class ReopenTableRegionsProcedure" class="title">Class ReopenTableRegionsProcedure</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">org.apache.hadoop.hbase.procedure2.Procedure</a>&lt;TEnvironment&gt;</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">org.apache.hadoop.hbase.procedure2.StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,TState&gt;</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure.AbstractStateMachineTableProcedure</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.master.procedure.ReopenTableRegionsProcedure</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&gt;, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Private
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.38">ReopenTableRegionsProcedure</a>
+extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</pre>
+<div class="block">Used for non table procedures to reopen the regions for a table. For example,
+ <a href="../../../../../../org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.html" title="class in org.apache.hadoop.hbase.master.replication"><code>ModifyPeerProcedure</code></a>.</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>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.procedure2.StateMachineProcedure">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.master.procedure.TableProcedureInterface">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></h3>
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a></code></li>
+</ul>
+</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 static org.slf4j.Logger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#LOG">LOG</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#tableName">tableName</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#NO_PROC_ID">NO_PROC_ID</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#NO_TIMEOUT">NO_TIMEOUT</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/master/procedure/ReopenTableRegionsProcedure.html#ReopenTableRegionsProcedure--">ReopenTableRegionsProcedure</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#ReopenTableRegionsProcedure-org.apache.hadoop.hbase.TableName-">ReopenTableRegionsProcedure</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>
+<div class="block">Called on store load to allow the user to decode the previously serialized
+ state.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">executeFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+                org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</code>
+<div class="block">called to perform a single step of the specified 'state' of the procedure</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getInitialState--">getInitialState</a></span>()</code>
+<div class="block">Return the initial state object that will be used for the first call to executeFromState().</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getState-int-">getState</a></span>(int&nbsp;stateId)</code>
+<div class="block">Convert an ordinal (or state id) to an Enum (or more descriptive) state object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getStateId-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">getStateId</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</code>
+<div class="block">Convert the Enum (or more descriptive) state object to an ordinal (or state id).</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#getTableOperationType--">getTableOperationType</a></span>()</code>
+<div class="block">Given an operation type we can take decisions about what to do with pending operations.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">rollbackState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</code>
+<div class="block">called to perform the rollback of the specified state</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)</code>
+<div class="block">The user-level code of the procedure may have some state to
+ persist (e.g.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.master.procedure.AbstractStateMachineTableProcedure">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a></h3>
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#acquireLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">acquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#checkOnline-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.client.RegionInfo-">checkOnline</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#checkTableModifiable-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">checkTableModifiable</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#getRegionDir-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.client.RegionInfo-">getRegionDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTab
 leProcedure.html#getUser--">getUser</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#preflightChecks-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-java.lang.Boolean-">preflightChecks</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#releaseLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">releaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#releaseSyncLatch--">releaseSyncLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#setUser-org.apache.hadoop.hbase.security.User-">setUser</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.StateMachineProcedure">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSuppo
 rted-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">d
 oReleaseLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#ge
 tProcedureMetrics-TEnvironment-">getProcedureMetrics</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStat
 e--">getState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeou
 t--">hasTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>, <
 a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html
 #setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#se
 tState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>, <a href="../../../../../../org/apache/hadoop/hbase/proced
 ure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://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="https://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="https://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="LOG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOG</h4>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.41">LOG</a></pre>
+</li>
+</ul>
+<a name="tableName">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tableName</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.43">tableName</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="ReopenTableRegionsProcedure--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ReopenTableRegionsProcedure</h4>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.45">ReopenTableRegionsProcedure</a>()</pre>
+</li>
+</ul>
+<a name="ReopenTableRegionsProcedure-org.apache.hadoop.hbase.TableName-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReopenTableRegionsProcedure</h4>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.48">ReopenTableRegionsProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTableName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTableName</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.53">getTableName</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableName--">getTableName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#getTableName--">getTableName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the name of the table the procedure is operating on</dd>
+</dl>
+</li>
+</ul>
+<a name="getTableOperationType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTableOperationType</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.58">getTableOperationType</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">TableProcedureInterface</a></code></span></div>
+<div class="block">Given an operation type we can take decisions about what to do with pending operations.
+ e.g. if we get a delete and we have some table operation pending (e.g. add column)
+ we can abort those operations.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">getTableOperationType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html" title="interface in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#getTableOperationType--">getTableOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the operation type that the procedure is executing.</dd>
+</dl>
+</li>
+</ul>
+<a name="executeFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>executeFromState</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.63">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)
+                                               throws <a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</a>,
+                                                      <a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a>,
+                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
+<div class="block">called to perform a single step of the specified 'state' of the procedure</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">executeFromState</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dd><code>state</code> - state to execute</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Flow.NO_MORE_STATE if the procedure is completed,
+         Flow.HAS_MORE_STATE if there is another step.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</a></code></dd>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="rollbackState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rollbackState</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.81">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)
+                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
+<div class="block">called to perform the rollback of the specified state</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollbackState-TEnvironment-TState-">rollbackState</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dd><code>state</code> - state to rollback</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - temporary failure, the rollback will retry later</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getState-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getState</h4>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.87">getState</a>(int&nbsp;stateId)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">StateMachineProcedure</a></code></span></div>
+<div class="block">Convert an ordinal (or state id) to an Enum (or more descriptive) state object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">getState</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>stateId</code> - the ordinal() of the state enum (or state id)</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the state enum object</dd>
+</dl>
+</li>
+</ul>
+<a name="getStateId-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStateId</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.92">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;state)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">StateMachineProcedure</a></code></span></div>
+<div class="block">Convert the Enum (or more descriptive) state object to an ordinal (or state id).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">getStateId</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>state</code> - the state enum object</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>stateId the ordinal() of the state enum (or state id)</dd>
+</dl>
+</li>
+</ul>
+<a name="getInitialState--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInitialState</h4>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.97">getInitialState</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">StateMachineProcedure</a></code></span></div>
+<div class="block">Return the initial state object that will be used for the first call to executeFromState().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">getInitialState</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initial state enum object</dd>
+</dl>
+</li>
+</ul>
+<a name="serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serializeStateData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.102">serializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
+<div class="block">The user-level code of the procedure may have some state to
+ persist (e.g. input arguments or current position in the processing state) to
+ be able to resume on failure.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serializer</code> - stores the serializable state</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>deserializeStateData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html#line.109">deserializeStateData</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a>&nbsp;serializer)
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
+<div class="block">Called on store load to allow the user to decode the previously serialized
+ state.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ReopenTableRegionsState&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>serializer</code> - contains the serialized state</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</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/ReopenTableRegionsProcedure.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/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" target="_top">Frames</a></li>
+<li><a href="ReopenTableRegionsProcedure.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.classes.inherited.from.class.org.apache.hadoop.hbase.procedure2.StateMachineProcedure">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;2018 <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/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
index 4ea88da..012416e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -402,7 +402,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../
 ../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/St
 ateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
@@ -958,7 +958,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
index aaa59da..0e82abe 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
@@ -400,7 +400,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/S
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedur
 e.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html
index d567371..0e41f01 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html
@@ -101,7 +101,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineNamespaceProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CloneSnapshotProcedure</a>, <a href=
 "../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CreateNamespaceProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CreateTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DeleteNamespaceProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DeleteTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DisableTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.htm
 l" title="class in org.apache.hadoop.hbase.master.procedure">EnableTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">GCMergedRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">GCRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/locking/LockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">LockProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MergeTableRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ModifyNamespaceProcedure</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ModifyTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MoveRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionTransitionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionPr
 ocedure.html" title="class in org.apache.hadoop.hbase.master.assignment">SplitTableRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a></dd>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineNamespaceProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CloneSnapshotProcedure</a>, <a href=
 "../../../../../../org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CreateNamespaceProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">CreateTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DeleteNamespaceProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DeleteTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DisableTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.htm
 l" title="class in org.apache.hadoop.hbase.master.procedure">EnableTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">GCMergedRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/GCRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">GCRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/locking/LockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">LockProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MergeTableRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ModifyNamespaceProcedure</a>, <a hr
 ef="../../../../../../org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ModifyTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MoveRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RecoverMetaProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionTransitionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapsh
 otProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">SplitTableRegionProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a></dd>
 </dl>
 <hr>
 <br>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
index 2efca18..5066ea6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html
@@ -357,7 +357,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure2.<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-org.apache.hadoop.hbase.procedure2.Procedure...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2
 /StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#abort-TEnvironment-">abort</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExe
 cutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/AbstractStateMachineTableProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/AbstractStateMachineTableProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/AbstractStateMachineTableProcedure.html
index fd2ab39..93e7109 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/AbstractStateMachineTableProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/AbstractStateMachineTableProcedure.html
@@ -182,10 +182,16 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ReopenTableRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ReopenTableRegionsProcedure</a></span></code>
+<div class="block">Used for non table procedures to reopen the regions for a table.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">RestoreSnapshotProcedure</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a></span></code>&nbsp;</td>
 </tr>
 </tbody>


[11/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
index d7e2bf4..dbfd9ee 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
@@ -103,2497 +103,2454 @@
 <span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.95"></a>
 <span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.96"></a>
 <span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.net.Address;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.quotas.GlobalQuotaSettings;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.regionserver.BloomType;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.regionserver.InternalScanner;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.regionserver.Region;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.regionserver.RegionScanner;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.regionserver.ScanType;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.regionserver.ScannerContext;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.regionserver.Store;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.replication.ReplicationEndpoint;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.security.User;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.security.access.Permission.Action;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.util.ByteRange;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.util.SimpleMutableByteRange;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.wal.WALEdit;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.slf4j.Logger;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.slf4j.LoggerFactory;<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hbase.thirdparty.com.google.common.collect.MapMaker;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hbase.thirdparty.com.google.common.collect.Sets;<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> * Provides basic authorization checks for data access and administrative<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * operations.<a name="line.143"></a>
-<span class="sourceLineNo">144</span> *<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * &lt;p&gt;<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * {@code AccessController} performs authorization checks for HBase operations<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * based on:<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * &lt;/p&gt;<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;ul&gt;<a name="line.149"></a>
-<span class="sourceLineNo">150</span> *   &lt;li&gt;the identity of the user performing the operation&lt;/li&gt;<a name="line.150"></a>
-<span class="sourceLineNo">151</span> *   &lt;li&gt;the scope over which the operation is performed, in increasing<a name="line.151"></a>
-<span class="sourceLineNo">152</span> *   specificity: global, table, column family, or qualifier&lt;/li&gt;<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *   &lt;li&gt;the type of action being performed (as mapped to<a name="line.153"></a>
-<span class="sourceLineNo">154</span> *   {@link Permission.Action} values)&lt;/li&gt;<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * &lt;/ul&gt;<a name="line.155"></a>
-<span class="sourceLineNo">156</span> * &lt;p&gt;<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * If the authorization check fails, an {@link AccessDeniedException}<a name="line.157"></a>
-<span class="sourceLineNo">158</span> * will be thrown for the operation.<a name="line.158"></a>
-<span class="sourceLineNo">159</span> * &lt;/p&gt;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> *<a name="line.160"></a>
-<span class="sourceLineNo">161</span> * &lt;p&gt;<a name="line.161"></a>
-<span class="sourceLineNo">162</span> * To perform authorization checks, {@code AccessController} relies on the<a name="line.162"></a>
-<span class="sourceLineNo">163</span> * RpcServerEngine being loaded to provide<a name="line.163"></a>
-<span class="sourceLineNo">164</span> * the user identities for remote requests.<a name="line.164"></a>
-<span class="sourceLineNo">165</span> * &lt;/p&gt;<a name="line.165"></a>
-<span class="sourceLineNo">166</span> *<a name="line.166"></a>
-<span class="sourceLineNo">167</span> * &lt;p&gt;<a name="line.167"></a>
-<span class="sourceLineNo">168</span> * The access control lists used for authorization can be manipulated via the<a name="line.168"></a>
-<span class="sourceLineNo">169</span> * exposed {@link AccessControlService} Interface implementation, and the associated<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * {@code grant}, {@code revoke}, and {@code user_permission} HBase shell<a name="line.170"></a>
-<span class="sourceLineNo">171</span> * commands.<a name="line.171"></a>
-<span class="sourceLineNo">172</span> * &lt;/p&gt;<a name="line.172"></a>
-<span class="sourceLineNo">173</span> */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>@CoreCoprocessor<a name="line.174"></a>
-<span class="sourceLineNo">175</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.175"></a>
-<span class="sourceLineNo">176</span>public class AccessController implements MasterCoprocessor, RegionCoprocessor,<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    RegionServerCoprocessor, AccessControlService.Interface,<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    MasterObserver, RegionObserver, RegionServerObserver, EndpointObserver, BulkLoadObserver {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  // TODO: encapsulate observer functions into separate class/sub-class.<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  private static final Logger LOG = LoggerFactory.getLogger(AccessController.class);<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  private static final Logger AUDITLOG =<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    LoggerFactory.getLogger("SecurityLogger."+AccessController.class.getName());<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  private static final String CHECK_COVERING_PERM = "check_covering_perm";<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private static final String TAG_CHECK_PASSED = "tag_check_passed";<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  private static final byte[] TRUE = Bytes.toBytes(true);<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private AccessChecker accessChecker;<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /** flags if we are running on a region of the _acl_ table */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private boolean aclRegion = false;<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  /** defined only for Endpoint implementation, so it can have way to<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   access region services */<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  private RegionCoprocessorEnvironment regionEnv;<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  /** Mapping of scanner instances to the user who created them */<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private Map&lt;InternalScanner,String&gt; scannerOwners =<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      new MapMaker().weakKeys().makeMap();<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  private Map&lt;TableName, List&lt;UserPermission&gt;&gt; tableAcls;<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  /** Provider for mapping principal names to Users */<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private UserProvider userProvider;<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  /** if we are active, usually false, only true if "hbase.security.authorization"<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   has been set to true in site configuration */<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private boolean authorizationEnabled;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  /** if we are able to support cell ACLs */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  private boolean cellFeaturesEnabled;<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /** if we should check EXEC permissions */<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private boolean shouldCheckExecPermission;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  /** if we should terminate access checks early as soon as table or CF grants<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    allow access; pre-0.98 compatible behavior */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  private boolean compatibleEarlyTermination;<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  /** if we have been successfully initialized */<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  private volatile boolean initialized = false;<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>  /** if the ACL table is available, only relevant in the master */<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  private volatile boolean aclTabAvailable = false;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public static boolean isCellAuthorizationSupported(Configuration conf) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    return AccessChecker.isAuthorizationSupported(conf) &amp;&amp;<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        (HFile.getFormatVersion(conf) &gt;= HFile.MIN_FORMAT_VERSION_WITH_TAGS);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>  public Region getRegion() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    return regionEnv != null ? regionEnv.getRegion() : null;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  public TableAuthManager getAuthManager() {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    return accessChecker.getAuthManager();<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  private void initialize(RegionCoprocessorEnvironment e) throws IOException {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    final Region region = e.getRegion();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    Configuration conf = e.getConfiguration();<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    Map&lt;byte[], ListMultimap&lt;String,TablePermission&gt;&gt; tables =<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        AccessControlLists.loadAll(region);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    // For each table, write out the table's permissions to the respective<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    // znode for that table.<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    for (Map.Entry&lt;byte[], ListMultimap&lt;String,TablePermission&gt;&gt; t:<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      tables.entrySet()) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      byte[] entry = t.getKey();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      ListMultimap&lt;String,TablePermission&gt; perms = t.getValue();<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, conf);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, serialized);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    }<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    initialized = true;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>  /**<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Writes all table ACLs for the tables in the given Map up into ZooKeeper<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * znodes.  This is called to synchronize ACL changes following {@code _acl_}<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * table updates.<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  private void updateACL(RegionCoprocessorEnvironment e,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      final Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    Set&lt;byte[]&gt; entries = new TreeSet&lt;&gt;(Bytes.BYTES_RAWCOMPARATOR);<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; f : familyMap.entrySet()) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      List&lt;Cell&gt; cells = f.getValue();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      for (Cell cell: cells) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        if (CellUtil.matchingFamily(cell, AccessControlLists.ACL_LIST_FAMILY)) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          entries.add(CellUtil.cloneRow(cell));<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    ZKPermissionWatcher zkw = getAuthManager().getZKPermissionWatcher();<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    Configuration conf = regionEnv.getConfiguration();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    byte [] currentEntry = null;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    // TODO: Here we are already on the ACL region. (And it is single<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    // region) We can even just get the region from the env and do get<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    // directly. The short circuit connection would avoid the RPC overhead<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    // so no socket communication, req write/read ..  But we have the PB<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    // to and fro conversion overhead. get req is converted to PB req<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    // and results are converted to PB results 1st and then to POJOs<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    // again. We could have avoided such at least in ACL table context..<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    try (Table t = e.getConnection().getTable(AccessControlLists.ACL_TABLE_NAME)) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      for (byte[] entry : entries) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        currentEntry = entry;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        ListMultimap&lt;String, TablePermission&gt; perms =<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            AccessControlLists.getPermissions(conf, entry, t);<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, conf);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        zkw.writeToZookeeper(entry, serialized);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    } catch(IOException ex) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          LOG.error("Failed updating permissions mirror for '" +<a name="line.292"></a>
-<span class="sourceLineNo">293</span>                  (currentEntry == null? "null": Bytes.toString(currentEntry)) + "'", ex);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * Check the current user for authorization to perform a specific action<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * against the given set of row data.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   *<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * &lt;p&gt;Note: Ordering of the authorization checks<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   * has been carefully optimized to short-circuit the most common requests<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   * and minimize the amount of processing required.&lt;/p&gt;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>   *<a name="line.304"></a>
-<span class="sourceLineNo">305</span>   * @param permRequest the action being requested<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * @param e the coprocessor environment<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * @param families the map of column families to qualifiers present in<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   * the request<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   * @return an authorization result<a name="line.309"></a>
-<span class="sourceLineNo">310</span>   */<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  private AuthResult permissionGranted(String request, User user, Action permRequest,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      RegionCoprocessorEnvironment e,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      Map&lt;byte [], ? extends Collection&lt;?&gt;&gt; families) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    RegionInfo hri = e.getRegion().getRegionInfo();<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    TableName tableName = hri.getTable();<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    // 1. All users need read access to hbase:meta table.<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // this is a very common operation, so deal with it quickly.<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    if (hri.isMetaRegion()) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      if (permRequest == Action.READ) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        return AuthResult.allow(request, "All users allowed", user,<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          permRequest, tableName, families);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span>    if (user == null) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      return AuthResult.deny(request, "No user associated with request!", null,<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        permRequest, tableName, families);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>    // 2. check for the table-level, if successful we can short-circuit<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    if (getAuthManager().authorize(user, tableName, (byte[])null, permRequest)) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      return AuthResult.allow(request, "Table permission granted", user,<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        permRequest, tableName, families);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>    // 3. check permissions against the requested families<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    if (families != null &amp;&amp; families.size() &gt; 0) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      // all families must pass<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      for (Map.Entry&lt;byte [], ? extends Collection&lt;?&gt;&gt; family : families.entrySet()) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        // a) check for family level access<a name="line.341"></a>
-<span class="sourceLineNo">342</span>        if (getAuthManager().authorize(user, tableName, family.getKey(),<a name="line.342"></a>
-<span class="sourceLineNo">343</span>            permRequest)) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>          continue;  // family-level permission overrides per-qualifier<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>        // b) qualifier level access can still succeed<a name="line.347"></a>
-<span class="sourceLineNo">348</span>        if ((family.getValue() != null) &amp;&amp; (family.getValue().size() &gt; 0)) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>          if (family.getValue() instanceof Set) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>            // for each qualifier of the family<a name="line.350"></a>
-<span class="sourceLineNo">351</span>            Set&lt;byte[]&gt; familySet = (Set&lt;byte[]&gt;)family.getValue();<a name="line.351"></a>
-<span class="sourceLineNo">352</span>            for (byte[] qualifier : familySet) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>              if (!getAuthManager().authorize(user, tableName, family.getKey(),<a name="line.353"></a>
-<span class="sourceLineNo">354</span>                                         qualifier, permRequest)) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>                return AuthResult.deny(request, "Failed qualifier check", user,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>                    permRequest, tableName, makeFamilyMap(family.getKey(), qualifier));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>              }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>            }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>          } else if (family.getValue() instanceof List) { // List&lt;Cell&gt;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>            List&lt;Cell&gt; cellList = (List&lt;Cell&gt;)family.getValue();<a name="line.360"></a>
-<span class="sourceLineNo">361</span>            for (Cell cell : cellList) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>              if (!getAuthManager().authorize(user, tableName, family.getKey(),<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                CellUtil.cloneQualifier(cell), permRequest)) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                return AuthResult.deny(request, "Failed qualifier check", user, permRequest,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  tableName, makeFamilyMap(family.getKey(), CellUtil.cloneQualifier(cell)));<a name="line.365"></a>
-<span class="sourceLineNo">366</span>              }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>            }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        } else {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          // no qualifiers and family-level check already failed<a name="line.370"></a>
-<span class="sourceLineNo">371</span>          return AuthResult.deny(request, "Failed family check", user, permRequest,<a name="line.371"></a>
-<span class="sourceLineNo">372</span>              tableName, makeFamilyMap(family.getKey(), null));<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>      // all family checks passed<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      return AuthResult.allow(request, "All family checks passed", user, permRequest,<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          tableName, families);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>    // 4. no families to check and table level access failed<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    return AuthResult.deny(request, "No families to check and table permission failed",<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        user, permRequest, tableName, families);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>  /**<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   * Check the current user for authorization to perform a specific action<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * against the given set of row data.<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * @param opType the operation type<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * @param user the user<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * @param e the coprocessor environment<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * @param families the map of column families to qualifiers present in<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * the request<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @param actions the desired actions<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * @return an authorization result<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   */<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  private AuthResult permissionGranted(OpType opType, User user, RegionCoprocessorEnvironment e,<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      Map&lt;byte [], ? extends Collection&lt;?&gt;&gt; families, Action... actions) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    AuthResult result = null;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    for (Action action: actions) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      result = permissionGranted(opType.toString(), user, action, e, families);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>      if (!result.isAllowed()) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        return result;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    return result;<a name="line.406"></a>
-<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  public void requireAccess(ObserverContext&lt;?&gt; ctx, String request, TableName tableName,<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      Action... permissions) throws IOException {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    accessChecker.requireAccess(getActiveUser(ctx), request, tableName, permissions);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>  public void requirePermission(ObserverContext&lt;?&gt; ctx, String request,<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      Action perm) throws IOException {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    accessChecker.requirePermission(getActiveUser(ctx), request, perm);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  public void requireGlobalPermission(ObserverContext&lt;?&gt; ctx, String request,<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      Action perm, TableName tableName,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      Map&lt;byte[], ? extends Collection&lt;byte[]&gt;&gt; familyMap) throws IOException {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    accessChecker.requireGlobalPermission(getActiveUser(ctx),<a name="line.422"></a>
-<span class="sourceLineNo">423</span>        request, perm,tableName, familyMap);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public void requireGlobalPermission(ObserverContext&lt;?&gt; ctx, String request,<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      Action perm, String namespace) throws IOException {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    accessChecker.requireGlobalPermission(getActiveUser(ctx),<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        request, perm, namespace);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public void requireNamespacePermission(ObserverContext&lt;?&gt; ctx, String request, String namespace,<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      Action... permissions) throws IOException {<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    accessChecker.requireNamespacePermission(getActiveUser(ctx),<a name="line.434"></a>
-<span class="sourceLineNo">435</span>        request, namespace, permissions);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>  public void requireNamespacePermission(ObserverContext&lt;?&gt; ctx, String request, String namespace,<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      TableName tableName, Map&lt;byte[], ? extends Collection&lt;byte[]&gt;&gt; familyMap,<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      Action... permissions) throws IOException {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    accessChecker.requireNamespacePermission(getActiveUser(ctx),<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        request, namespace, tableName, familyMap,<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        permissions);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  }<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  public void requirePermission(ObserverContext&lt;?&gt; ctx, String request, TableName tableName,<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      byte[] family, byte[] qualifier, Action... permissions) throws IOException {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    accessChecker.requirePermission(getActiveUser(ctx), request,<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        tableName, family, qualifier, permissions);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  public void requireTablePermission(ObserverContext&lt;?&gt; ctx, String request,<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      TableName tableName,byte[] family, byte[] qualifier,<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      Action... permissions) throws IOException {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    accessChecker.requireTablePermission(getActiveUser(ctx),<a name="line.455"></a>
-<span class="sourceLineNo">456</span>        request, tableName, family, qualifier, permissions);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  }<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public void checkLockPermissions(ObserverContext&lt;?&gt; ctx, String namespace,<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      TableName tableName, RegionInfo[] regionInfos, String reason)<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      throws IOException {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    accessChecker.checkLockPermissions(getActiveUser(ctx),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        namespace, tableName, regionInfos, reason);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  /**<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * Returns &lt;code&gt;true&lt;/code&gt; if the current user is allowed the given action<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   * over at least one of the column qualifiers in the given column families.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   */<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  private boolean hasFamilyQualifierPermission(User user,<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      Action perm,<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      RegionCoprocessorEnvironment env,<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      Map&lt;byte[], ? extends Collection&lt;byte[]&gt;&gt; familyMap)<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    throws IOException {<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    RegionInfo hri = env.getRegion().getRegionInfo();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    TableName tableName = hri.getTable();<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>    if (user == null) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      return false;<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>    if (familyMap != null &amp;&amp; familyMap.size() &gt; 0) {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      // at least one family must be allowed<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      for (Map.Entry&lt;byte[], ? extends Collection&lt;byte[]&gt;&gt; family :<a name="line.484"></a>
-<span class="sourceLineNo">485</span>          familyMap.entrySet()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        if (family.getValue() != null &amp;&amp; !family.getValue().isEmpty()) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>          for (byte[] qualifier : family.getValue()) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>            if (getAuthManager().matchPermission(user, tableName,<a name="line.488"></a>
-<span class="sourceLineNo">489</span>                family.getKey(), qualifier, perm)) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              return true;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>            }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>          }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>        } else {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          if (getAuthManager().matchPermission(user, tableName, family.getKey(),<a name="line.494"></a>
-<span class="sourceLineNo">495</span>              perm)) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            return true;<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        }<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    } else if (LOG.isDebugEnabled()) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      LOG.debug("Empty family map passed for permission check");<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>    return false;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  }<a name="line.505"></a>
-<span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>  private enum OpType {<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    GET("get"),<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    EXISTS("exists"),<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    SCAN("scan"),<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    PUT("put"),<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    DELETE("delete"),<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    CHECK_AND_PUT("checkAndPut"),<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    CHECK_AND_DELETE("checkAndDelete"),<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    INCREMENT_COLUMN_VALUE("incrementColumnValue"),<a name="line.515"></a>
-<span class="sourceLineNo">516</span>    APPEND("append"),<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    INCREMENT("increment");<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    private String type;<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>    private OpType(String type) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      this.type = type;<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    }<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>    @Override<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    public String toString() {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      return type;<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span>  /**<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * Determine if cell ACLs covered by the operation grant access. This is expensive.<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @return false if cell ACLs failed to grant access, true otherwise<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @throws IOException<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   */<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  private boolean checkCoveringPermission(User user, OpType request, RegionCoprocessorEnvironment e,<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      byte[] row, Map&lt;byte[], ? extends Collection&lt;?&gt;&gt; familyMap, long opTs, Action... actions)<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throws IOException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    if (!cellFeaturesEnabled) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      return false;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    long cellGrants = 0;<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    long latestCellTs = 0;<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    Get get = new Get(row);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    // Only in case of Put/Delete op, consider TS within cell (if set for individual cells).<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    // When every cell, within a Mutation, can be linked with diff TS we can not rely on only one<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    // version. We have to get every cell version and check its TS against the TS asked for in<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // Mutation and skip those Cells which is outside this Mutation TS.In case of Put, we have to<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    // consider only one such passing cell. In case of Delete we have to consider all the cell<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    // versions under this passing version. When Delete Mutation contains columns which are a<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    // version delete just consider only one version for those column cells.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    boolean considerCellTs  = (request == OpType.PUT || request == OpType.DELETE);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    if (considerCellTs) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      get.setMaxVersions();<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    } else {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      get.setMaxVersions(1);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    }<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    boolean diffCellTsFromOpTs = false;<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    for (Map.Entry&lt;byte[], ? extends Collection&lt;?&gt;&gt; entry: familyMap.entrySet()) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      byte[] col = entry.getKey();<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      // TODO: HBASE-7114 could possibly unify the collection type in family<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      // maps so we would not need to do this<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      if (entry.getValue() instanceof Set) {<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        Set&lt;byte[]&gt; set = (Set&lt;byte[]&gt;)entry.getValue();<a name="line.564"></a>
-<span class="sourceLineNo">565</span>        if (set == null || set.isEmpty()) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>          get.addFamily(col);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>        } else {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          for (byte[] qual: set) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>            get.addColumn(col, qual);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      } else if (entry.getValue() instanceof List) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>        List&lt;Cell&gt; list = (List&lt;Cell&gt;)entry.getValue();<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        if (list == null || list.isEmpty()) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>          get.addFamily(col);<a name="line.575"></a>
-<span class="sourceLineNo">576</span>        } else {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>          // In case of family delete, a Cell will be added into the list with Qualifier as null.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>          for (Cell cell : list) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>            if (cell.getQualifierLength() == 0<a name="line.579"></a>
-<span class="sourceLineNo">580</span>                &amp;&amp; (cell.getTypeByte() == Type.DeleteFamily.getCode()<a name="line.580"></a>
-<span class="sourceLineNo">581</span>                || cell.getTypeByte() == Type.DeleteFamilyVersion.getCode())) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>              get.addFamily(col);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>            } else {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>              get.addColumn(col, CellUtil.cloneQualifier(cell));<a name="line.584"></a>
-<span class="sourceLineNo">585</span>            }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>            if (considerCellTs) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>              long cellTs = cell.getTimestamp();<a name="line.587"></a>
-<span class="sourceLineNo">588</span>              latestCellTs = Math.max(latestCellTs, cellTs);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>              diffCellTsFromOpTs = diffCellTsFromOpTs || (opTs != cellTs);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>            }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>          }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      } else if (entry.getValue() == null) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        get.addFamily(col);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      } else {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        throw new RuntimeException("Unhandled collection type " +<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          entry.getValue().getClass().getName());<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    }<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    // We want to avoid looking into the future. So, if the cells of the<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    // operation specify a timestamp, or the operation itself specifies a<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    // timestamp, then we use the maximum ts found. Otherwise, we bound<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    // the Get to the current server time. We add 1 to the timerange since<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    // the upper bound of a timerange is exclusive yet we need to examine<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    // any cells found there inclusively.<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    long latestTs = Math.max(opTs, latestCellTs);<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    if (latestTs == 0 || latestTs == HConstants.LATEST_TIMESTAMP) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      latestTs = EnvironmentEdgeManager.currentTime();<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    }<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    get.setTimeRange(0, latestTs + 1);<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    // In case of Put operation we set to read all versions. This was done to consider the case<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    // where columns are added with TS other than the Mutation TS. But normally this wont be the<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // case with Put. There no need to get all versions but get latest version only.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (!diffCellTsFromOpTs &amp;&amp; request == OpType.PUT) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      get.setMaxVersions(1);<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    if (LOG.isTraceEnabled()) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      LOG.trace("Scanning for cells with " + get);<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    // This Map is identical to familyMap. The key is a BR rather than byte[].<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    // It will be easy to do gets over this new Map as we can create get keys over the Cell cf by<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    // new SimpleByteRange(cell.familyArray, cell.familyOffset, cell.familyLen)<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    Map&lt;ByteRange, List&lt;Cell&gt;&gt; familyMap1 = new HashMap&lt;&gt;();<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    for (Entry&lt;byte[], ? extends Collection&lt;?&gt;&gt; entry : familyMap.entrySet()) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      if (entry.getValue() instanceof List) {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>        familyMap1.put(new SimpleMutableByteRange(entry.getKey()), (List&lt;Cell&gt;) entry.getValue());<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      }<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    RegionScanner scanner = getRegion(e).getScanner(new Scan(get));<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    List&lt;Cell&gt; cells = Lists.newArrayList();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    Cell prevCell = null;<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    ByteRange curFam = new SimpleMutableByteRange();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    boolean curColAllVersions = (request == OpType.DELETE);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    long curColCheckTs = opTs;<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    boolean foundColumn = false;<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    try {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      boolean more = false;<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      ScannerContext scannerContext = ScannerContext.newBuilder().setBatchLimit(1).build();<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>      do {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>        cells.clear();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>        // scan with limit as 1 to hold down memory use on wide rows<a name="line.642"></a>
-<span class="sourceLineNo">643</span>        more = scanner.next(cells, scannerContext);<a name="line.643"></a>
-<span class="sourceLineNo">644</span>        for (Cell cell: cells) {<a name="line.644"></a>
-<span class="sourceLineNo">645</span>          if (LOG.isTraceEnabled()) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>            LOG.trace("Found cell " + cell);<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          }<a name="line.647"></a>
-<span class="sourceLineNo">648</span>          boolean colChange = prevCell == null || !CellUtil.matchingColumn(prevCell, cell);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          if (colChange) foundColumn = false;<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          prevCell = cell;<a name="line.650"></a>
-<span class="sourceLineNo">651</span>          if (!curColAllVersions &amp;&amp; foundColumn) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>            continue;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>          }<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          if (colChange &amp;&amp; considerCellTs) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>            curFam.set(cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength());<a name="line.655"></a>
-<span class="sourceLineNo">656</span>            List&lt;Cell&gt; cols = familyMap1.get(curFam);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>            for (Cell col : cols) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>              // null/empty qualifier is used to denote a Family delete. The TS and delete type<a name="line.658"></a>
-<span class="sourceLineNo">659</span>              // associated with this is applicable for all columns within the family. That is<a name="line.659"></a>
-<span class="sourceLineNo">660</span>              // why the below (col.getQualifierLength() == 0) check.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>              if ((col.getQualifierLength() == 0 &amp;&amp; request == OpType.DELETE)<a name="line.661"></a>
-<span class="sourceLineNo">662</span>                  || CellUtil.matchingQualifier(cell, col)) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>                byte type = col.getTypeByte();<a name="line.663"></a>
-<span class="sourceLineNo">664</span>                if (considerCellTs) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>                  curColCheckTs = col.getTimestamp();<a name="line.665"></a>
-<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
-<span class="sourceLineNo">667</span>                // For a Delete op we pass allVersions as true. When a Delete Mutation contains<a name="line.667"></a>
-<span class="sourceLineNo">668</span>                // a version delete for a column no need to check all the covering cells within<a name="line.668"></a>
-<span class="sourceLineNo">669</span>                // that column. Check all versions when Type is DeleteColumn or DeleteFamily<a name="line.669"></a>
-<span class="sourceLineNo">670</span>                // One version delete types are Delete/DeleteFamilyVersion<a name="line.670"></a>
-<span class="sourceLineNo">671</span>                curColAllVersions = (KeyValue.Type.DeleteColumn.getCode() == type)<a name="line.671"></a>
-<span class="sourceLineNo">672</span>                    || (KeyValue.Type.DeleteFamily.getCode() == type);<a name="line.672"></a>
-<span class="sourceLineNo">673</span>                break;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>              }<a name="line.674"></a>
-<span class="sourceLineNo">675</span>            }<a name="line.675"></a>
-<span class="sourceLineNo">676</span>          }<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          if (cell.getTimestamp() &gt; curColCheckTs) {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>            // Just ignore this cell. This is not a covering cell.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>            continue;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>          foundColumn = true;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>          for (Action action: actions) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>            // Are there permissions for this user for the cell?<a name="line.683"></a>
-<span class="sourceLineNo">684</span>            if (!getAuthManager().authorize(user, getTableName(e), cell, action)) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>              // We can stop if the cell ACL denies access<a name="line.685"></a>
-<span class="sourceLineNo">686</span>              return false;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>            }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>          }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>          cellGrants++;<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      } while (more);<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    } catch (AccessDeniedException ex) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      throw ex;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    } catch (IOException ex) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      LOG.error("Exception while getting cells to calculate covering permission", ex);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    } finally {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>      scanner.close();<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    }<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    // We should not authorize unless we have found one or more cell ACLs that<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    // grant access. This code is used to check for additional permissions<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    // after no table or CF grants are found.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    return cellGrants &gt; 0;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>  private static void addCellPermissions(final byte[] perms, Map&lt;byte[], List&lt;Cell&gt;&gt; familyMap) {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>    // Iterate over the entries in the familyMap, replacing the cells therein<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    // with new cells including the ACL data<a name="line.707"></a>
-<span class="sourceLineNo">708</span>    for (Map.Entry&lt;byte[], List&lt;Cell&gt;&gt; e: familyMap.entrySet()) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>      List&lt;Cell&gt; newCells = Lists.newArrayList();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      for (Cell cell: e.getValue()) {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>        // Prepend the supplied perms in a new ACL tag to an update list of tags for the cell<a name="line.711"></a>
-<span class="sourceLineNo">712</span>        List&lt;Tag&gt; tags = new ArrayList&lt;&gt;();<a name="line.712"></a>
-<span class="sourceLineNo">713</span>        tags.add(new ArrayBackedTag(AccessControlLists.ACL_TAG_TYPE, perms));<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        Iterator&lt;Tag&gt; tagIterator = PrivateCellUtil.tagsIterator(cell);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>        while (tagIterator.hasNext()) {<a name="line.715"></a>
-<span class="sourceLineNo">716</span>          tags.add(tagIterator.next());<a name="line.716"></a>
-<span class="sourceLineNo">717</span>        }<a name="line.717"></a>
-<span class="sourceLineNo">718</span>        newCells.add(PrivateCellUtil.createCell(cell, tags));<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      }<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      // This is supposed to be safe, won't CME<a name="line.720"></a>
-<span class="sourceLineNo">721</span>      e.setValue(newCells);<a name="line.721"></a>
-<span class="sourceLineNo">722</span>    }<a name="line.722"></a>
-<span class="sourceLineNo">723</span>  }<a name="line.723"></a>
-<span class="sourceLineNo">724</span><a name="line.724"></a>
-<span class="sourceLineNo">725</span>  // Checks whether incoming cells contain any tag with type as ACL_TAG_TYPE. This tag<a name="line.725"></a>
-<span class="sourceLineNo">726</span>  // type is reserved and should not be explicitly set by user.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  private void checkForReservedTagPresence(User user, Mutation m) throws IOException {<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    // No need to check if we're not going to throw<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    if (!authorizationEnabled) {<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      m.setAttribute(TAG_CHECK_PASSED, TRUE);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      return;<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    }<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Superusers are allowed to store cells unconditionally.<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    if (Superusers.isSuperUser(user)) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      m.setAttribute(TAG_CHECK_PASSED, TRUE);<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      return;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    }<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    // We already checked (prePut vs preBatchMutation)<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    if (m.getAttribute(TAG_CHECK_PASSED) != null) {<a name="line.739"></a>
-<span class="sourceLineNo">740</span>      return;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    }<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    for (CellScanner cellScanner = m.cellScanner(); cellScanner.advance();) {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>      Iterator&lt;Tag&gt; tagsItr = PrivateCellUtil.tagsIterator(cellScanner.current());<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      while (tagsItr.hasNext()) {<a name="line.744"></a>
-<span class="sourceLineNo">745</span>        if (tagsItr.next().getType() == AccessControlLists.ACL_TAG_TYPE) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          throw new AccessDeniedException("Mutation contains cell with reserved type tag");<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>      }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    }<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    m.setAttribute(TAG_CHECK_PASSED, TRUE);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  }<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>  /* ---- MasterObserver implementation ---- */<a name="line.753"></a>
-<span class="sourceLineNo">754</span>  @Override<a name="line.754"></a>
-<span class="sourceLineNo">755</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    CompoundConfiguration conf = new CompoundConfiguration();<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    conf.add(env.getConfiguration());<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    authorizationEnabled = AccessChecker.isAuthorizationSupported(conf);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    if (!authorizationEnabled) {<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      LOG.warn("AccessController has been loaded with authorization checks DISABLED!");<a name="line.761"></a>
-<span class="sourceLineNo">762</span>    }<a name="line.762"></a>
-<span class="sourceLineNo">763</span><a name="line.763"></a>
-<span class="sourceLineNo">764</span>    shouldCheckExecPermission = conf.getBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY,<a name="line.764"></a>
-<span class="sourceLineNo">765</span>      AccessControlConstants.DEFAULT_EXEC_PERMISSION_CHECKS);<a name="line.765"></a>
-<span class="sourceLineNo">766</span><a name="line.766"></a>
-<span class="sourceLineNo">767</span>    cellFeaturesEnabled = (HFile.getFormatVersion(conf) &gt;= HFile.MIN_FORMAT_VERSION_WITH_TAGS);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    if (!cellFeaturesEnabled) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      LOG.info("A minimum HFile version of " + HFile.MIN_FORMAT_VERSION_WITH_TAGS<a name="line.769"></a>
-<span class="sourceLineNo">770</span>          + " is required to persist cell ACLs. Consider setting " + HFile.FORMAT_VERSION_KEY<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          + " accordingly.");<a name="line.771"></a>
-<span class="sourceLineNo">772</span>    }<a name="line.772"></a>
-<span class="sourceLineNo">773</span><a name="line.773"></a>
-<span class="sourceLineNo">774</span>    ZKWatcher zk = null;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    if (env instanceof MasterCoprocessorEnvironment) {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      // if running on HMaster<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      MasterCoprocessorEnvironment mEnv = (MasterCoprocessorEnvironment)env;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      if (mEnv instanceof HasMasterServices) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        zk = ((HasMasterServices)mEnv).getMasterServices().getZooKeeper();<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      }<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    } else if (env instanceof RegionServerCoprocessorEnvironment) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      RegionServerCoprocessorEnvironment rsEnv = (RegionServerCoprocessorEnvironment)env;<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      if (rsEnv instanceof HasRegionServerServices) {<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        zk = ((HasRegionServerServices)rsEnv).getRegionServerServices().getZooKeeper();<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    } else if (env instanceof RegionCoprocessorEnvironment) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      // if running at region<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      regionEnv = (RegionCoprocessorEnvironment) env;<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      conf.addBytesMap(regionEnv.getRegion().getTableDescriptor().getValues());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      compatibleEarlyTermination = conf.getBoolean(AccessControlConstants.CF_ATTRIBUTE_EARLY_OUT,<a name="line.790"></a>
-<span class="sourceLineNo">791</span>          AccessControlConstants.DEFAULT_ATTRIBUTE_EARLY_OUT);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      if (regionEnv instanceof HasRegionServerServices) {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>        zk = ((HasRegionServerServices)regionEnv).getRegionServerServices().getZooKeeper();<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    }<a name="line.795"></a>
-<span class="sourceLineNo">796</span><a name="line.796"></a>
-<span class="sourceLineNo">797</span>    // set the user-provider.<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    this.userProvider = UserProvider.instantiate(env.getConfiguration());<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    // Throws RuntimeException if fails to load TableAuthManager so that coprocessor is unloaded.<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    accessChecker = new AccessChecker(env.getConfiguration(), zk);<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    tableAcls = new MapMaker().weakValues().makeMap();<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>  @Override<a name="line.804"></a>
-<span class="sourceLineNo">805</span>  public void stop(CoprocessorEnvironment env) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    accessChecker.stop();<a name="line.806"></a>
-<span class="sourceLineNo">807</span>  }<a name="line.807"></a>
-<span class="sourceLineNo">808</span><a name="line.808"></a>
-<span class="sourceLineNo">809</span>  /*********************************** Observer/Service Getters ***********************************/<a name="line.809"></a>
-<span class="sourceLineNo">810</span>  @Override<a name="line.810"></a>
-<span class="sourceLineNo">811</span>  public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    return Optional.of(this);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  }<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>  @Override<a name="line.815"></a>
-<span class="sourceLineNo">816</span>  public Optional&lt;MasterObserver&gt; getMasterObserver() {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>    return Optional.of(this);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>  }<a name="line.818"></a>
-<span class="sourceLineNo">819</span><a name="line.819"></a>
-<span class="sourceLineNo">820</span>  @Override<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  public Optional&lt;EndpointObserver&gt; getEndpointObserver() {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    return Optional.of(this);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>  }<a name="line.823"></a>
-<span class="sourceLineNo">824</span><a name="line.824"></a>
-<span class="sourceLineNo">825</span>  @Override<a name="line.825"></a>
-<span class="sourceLineNo">826</span>  public Optional&lt;BulkLoadObserver&gt; getBulkLoadObserver() {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    return Optional.of(this);<a name="line.827"></a>
-<span class="sourceLineNo">828</span>  }<a name="line.828"></a>
-<span class="sourceLineNo">829</span><a name="line.829"></a>
-<span class="sourceLineNo">830</span>  @Override<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  public Optional&lt;RegionServerObserver&gt; getRegionServerObserver() {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    return Optional.of(this);<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  @Override<a name="line.835"></a>
-<span class="sourceLineNo">836</span>  public Iterable&lt;Service&gt; getServices() {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    return Collections.singleton(<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        AccessControlProtos.AccessControlService.newReflectiveService(this));<a name="line.838"></a>
-<span class="sourceLineNo">839</span>  }<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span>  /*********************************** Observer implementations ***********************************/<a name="line.841"></a>
-<span class="sourceLineNo">842</span><a name="line.842"></a>
-<span class="sourceLineNo">843</span>  @Override<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    Set&lt;byte[]&gt; families = desc.getColumnFamilyNames();<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    Map&lt;byte[], Set&lt;byte[]&gt;&gt; familyMap = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    for (byte[] family: families) {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      familyMap.put(family, null);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    requireNamespacePermission(c, "createTable",<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        desc.getTableName().getNamespaceAsString(), desc.getTableName(), familyMap, Action.CREATE);<a name="line.852"></a>
-<span class="sourceLineNo">853</span>  }<a name="line.853"></a>
-<span class="sourceLineNo">854</span><a name="line.854"></a>
-<span class="sourceLineNo">855</span>  @Override<a name="line.855"></a>
-<span class="sourceLineNo">856</span>  public void postCompletedCreateTableAction(<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      final TableDescriptor desc,<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      final RegionInfo[] regions) throws IOException {<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // When AC is used, it should be configured as the 1st CP.<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // In Master, the table operations like create, are handled by a Thread pool but the max size<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // for this pool is 1. So if multiple CPs create tables on startup, these creations will happen<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    // sequentially only.<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    // Related code in HMaster#startServiceThreads<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // {code}<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    //   // We depend on there being only one instance of this executor running<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    //   // at a time. To do concurrency, would need fencing of enable/disable of<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    //   // tables.<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    //   this.service.startExecutorService(ExecutorType.MASTER_TABLE_OPERATIONS, 1);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    // {code}<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    // In future if we change this pool to have more threads, then there is a chance for thread,<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    // creating acl table, getting delayed and by that time another table creation got over and<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    // this hook is getting called. In such a case, we will need a wait logic here which will<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    // wait till the acl table is created.<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    if (AccessControlLists.isAclTable(desc)) {<a name="line.875"></a>
-<span class="sourceLineNo">876</span>      this.aclTabAvailable = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>    } else if (!(TableName.NAMESPACE_TABLE_NAME.equals(desc.getTableName()))) {<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (!aclTabAvailable) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        LOG.warn("Not adding owner permission for table " + desc.getTableName() + ". "<a name="line.879"></a>
-<span class="sourceLineNo">880</span>            + AccessControlLists.ACL_TABLE_NAME + " is not yet created. "<a name="line.880"></a>
-<span class="sourceLineNo">881</span>            + getClass().getSimpleName() + " should be configured as the first Coprocessor");<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      } else {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        String owner = desc.getOwnerString();<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        // default the table owner to current user, if not specified.<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        if (owner == null)<a name="line.885"></a>
-<span class="sourceLineNo">886</span>          owner = getActiveUser(c).getShortName();<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        final UserPermission userperm = new UserPermission(Bytes.toBytes(owner),<a name="line.887"></a>
-<span class="sourceLineNo">888</span>            desc.getTableName(), null, Action.values());<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        // switch to the real hbase master user for doing the RPC on the ACL table<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        User.runAsLoginUser(new PrivilegedExceptionAction&lt;Void&gt;() {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>          @Override<a name="line.891"></a>
-<span class="sourceLineNo">892</span>          public Void run() throws Exception {<a name="line.892"></a>
-<span class="sourceLineNo">893</span>            try (Table table = c.getEnvironment().getConnection().<a name="line.893"></a>
-<span class="sourceLineNo">894</span>                getTable(AccessControlLists.ACL_TABLE_NAME)) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span>              AccessControlLists.addUserPermission(c.getEnvironment().getConfiguration(),<a name="line.895"></a>
-<span class="sourceLineNo">896</span>                  userperm, table);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>            }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>            return null;<a name="line.898"></a>
-<span class="sourceLineNo">899</span>          }<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>    }<a name="line.902"></a>
-<span class="sourceLineNo">903</span>  }<a name="line.903"></a>
-<span class="sourceLineNo">904</span><a name="line.904"></a>
-<span class="sourceLineNo">905</span>  @Override<a name="line.905"></a>
-<span class="sourceLineNo">906</span>  public void preDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c, TableName tableName)<a name="line.906"></a>
-<span class="sourceLineNo">907</span>      throws IOException {<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    requirePermission(c, "deleteTable",<a name="line.908"></a>
-<span class="sourceLineNo">909</span>        tableName, null, null, Action.ADMIN, Action.CREATE);<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>  @Override<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.913"></a>
-<span class="sourceLineNo">914</span>      final TableName tableName) throws IOException {<a name="line.914"></a>
-<span class="sourceLineNo">915</span>    final Configuration conf = c.getEnvironment().getConfiguration();<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    User.runAsLoginUser(new PrivilegedExceptionAction&lt;Void&gt;() {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      @Override<a name="line.917"></a>
-<span class="sourceLineNo">918</span>      public Void run() throws Exception {<a name="line.918"></a>
-<span class="sourceLineNo">919</span>        try (Table table = c.getEnvironment().getConnection().<a name="line.919"></a>
-<span class="sourceLineNo">920</span>            getTable(AccessControlLists.ACL_TABLE_NAME)) {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>          AccessControlLists.removeTablePermissions(conf, tableName, table);<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        return null;<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      }<a name="line.924"></a>
-<span class="sourceLineNo">925</span>    });<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    getAuthManager().getZKPermissionWatcher().deleteTableACLNode(tableName);<a name="line.926"></a>
-<span class="sourceLineNo">927</span>  }<a name="line.927"></a>
-<span class="sourceLineNo">928</span><a name="line.928"></a>
-<span class="sourceLineNo">929</span>  @Override<a name="line.929"></a>
-<span class="sourceLineNo">930</span>  public void preTruncateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; c,<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      final TableName tableName) throws IOException {<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    requirePermission(c, "truncateTable",<a name="line.932"></a>
-<span class="sourceLineNo">933</span>        tableName, null, null, Action.ADMIN, Action.CREATE);<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>    final Configuration conf = c.getEnvironment().getConfiguration();<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    User.runAsLoginUser(new PrivilegedExceptionAction&lt;Void&gt;() {<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      @Override<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      public Void run() throws Exception {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>        List&lt;UserPermission&gt; acls = AccessControlLists.getUserTablePermissions(conf, tableName);<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        if (acls != null) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>          tableAcls.put(tableName, acls);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        }<a name="line.942"></a>
-<span class="sourceLineNo">943</span>        return null;<a name="line.943"></a>
-<span class="sourceLineNo">944</span>      }<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    });<a name="line.945"></a>
-<span class="sourceLineNo">946</span>  }<a name="line.946"></a>
-

<TRUNCATED>

[37/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
index 3ddf42b..3d32843 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2985">HRegion.BatchOperation</a>&lt;T&gt;
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2991">HRegion.BatchOperation</a>&lt;T&gt;
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Class that tracks the progress of a batch operations, accumulating status codes and tracking
  the index at which processing is proceeding. These batch operations may get split into
@@ -415,7 +415,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>operations</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2986">operations</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2992">operations</a></pre>
 </li>
 </ul>
 <a name="retCodeDetails">
@@ -424,7 +424,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>retCodeDetails</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2987">retCodeDetails</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2993">retCodeDetails</a></pre>
 </li>
 </ul>
 <a name="walEditsFromCoprocessors">
@@ -433,7 +433,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>walEditsFromCoprocessors</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2988">walEditsFromCoprocessors</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2994">walEditsFromCoprocessors</a></pre>
 </li>
 </ul>
 <a name="familyCellMaps">
@@ -442,7 +442,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>familyCellMaps</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2990">familyCellMaps</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2996">familyCellMaps</a></pre>
 </li>
 </ul>
 <a name="region">
@@ -451,7 +451,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>region</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2992">region</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2998">region</a></pre>
 </li>
 </ul>
 <a name="nextIndexToProcess">
@@ -460,7 +460,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>nextIndexToProcess</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2993">nextIndexToProcess</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2999">nextIndexToProcess</a></pre>
 </li>
 </ul>
 <a name="observedExceptions">
@@ -469,7 +469,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>observedExceptions</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.ObservedExceptionsInBatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2994">observedExceptions</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.ObservedExceptionsInBatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3000">observedExceptions</a></pre>
 </li>
 </ul>
 <a name="durability">
@@ -478,7 +478,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>durability</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2996">durability</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3002">durability</a></pre>
 </li>
 </ul>
 <a name="atomic">
@@ -487,7 +487,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>atomic</h4>
-<pre>protected&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2997">atomic</a></pre>
+<pre>protected&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3003">atomic</a></pre>
 </li>
 </ul>
 </li>
@@ -506,7 +506,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BatchOperation</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2999">BatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3005">BatchOperation</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/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[]&nbsp;operations)</pre>
 </li>
 </ul>
@@ -524,7 +524,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>visitBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3026">visitBatchOperations</a>(boolean&nbsp;pendingOnly,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3032">visitBatchOperations</a>(boolean&nbsp;pendingOnly,
                                  int&nbsp;lastIndexExclusive,
                                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation.Visitor</a>&nbsp;visitor)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -541,7 +541,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3038">getMutation</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3044">getMutation</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getNonceGroup-int-">
@@ -550,7 +550,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3039">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3045">getNonceGroup</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getNonce-int-">
@@ -559,7 +559,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3040">getNonce</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3046">getNonce</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getMutationsForCoprocs--">
@@ -568,7 +568,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3042">getMutationsForCoprocs</a>()</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3048">getMutationsForCoprocs</a>()</pre>
 <div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
 </li>
 </ul>
@@ -578,7 +578,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3043">isInReplay</a>()</pre>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3049">isInReplay</a>()</pre>
 </li>
 </ul>
 <a name="getOrigLogSeqNum--">
@@ -587,7 +587,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrigLogSeqNum</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3044">getOrigLogSeqNum</a>()</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3050">getOrigLogSeqNum</a>()</pre>
 </li>
 </ul>
 <a name="startRegionOperation--">
@@ -596,7 +596,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startRegionOperation</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3045">startRegionOperation</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3051">startRegionOperation</a>()
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -610,7 +610,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionOperation</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3046">closeRegionOperation</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3052">closeRegionOperation</a>()
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -624,7 +624,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepare</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3055">checkAndPrepare</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3061">checkAndPrepare</a>()
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
  CP prePut()/ preDelete() hooks for all mutations in a batch. This is intended to operate on
@@ -643,7 +643,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPreparePut</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3061">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3067">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Implement any Put request specific check and prepare logic here. Please refer to
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepareMutation-org.apache.hadoop.hbase.client.Mutation-long-"><code>checkAndPrepareMutation(Mutation, long)</code></a> for how its used.</div>
@@ -659,7 +659,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareMiniBatchOperations</h4>
-<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3067">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3073">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                 long&nbsp;timestamp,
                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
                                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -677,7 +677,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3073">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3079">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                                                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                                                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Write mini-batch operations to MemStore</div>
@@ -693,7 +693,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3077">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3083">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                   long&nbsp;writeNumber)
                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -708,7 +708,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isDone</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3097">isDone</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3103">isDone</a>()</pre>
 </li>
 </ul>
 <a name="size--">
@@ -717,7 +717,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>size</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3101">size</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3107">size</a>()</pre>
 </li>
 </ul>
 <a name="isOperationPending-int-">
@@ -726,7 +726,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isOperationPending</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3105">isOperationPending</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3111">isOperationPending</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getClusterIds--">
@@ -735,7 +735,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterIds</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3109">getClusterIds</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3115">getClusterIds</a>()</pre>
 </li>
 </ul>
 <a name="isAtomic--">
@@ -744,7 +744,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isAtomic</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3114">isAtomic</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3120">isAtomic</a>()</pre>
 </li>
 </ul>
 <a name="checkAndPrepareMutation-org.apache.hadoop.hbase.client.Mutation-long-">
@@ -753,7 +753,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepareMutation</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3124">checkAndPrepareMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3130">checkAndPrepareMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                                        long&nbsp;timestamp)
                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Helper method that checks and prepares only one mutation. This can be used to implement
@@ -772,7 +772,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepareMutation</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3136">checkAndPrepareMutation</a>(int&nbsp;index,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3142">checkAndPrepareMutation</a>(int&nbsp;index,
                                        long&nbsp;timestamp)
                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -787,7 +787,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>lockRowsAndBuildMiniBatch</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3198">lockRowsAndBuildMiniBatch</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3204">lockRowsAndBuildMiniBatch</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
                                                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Creates Mini-batch of all operations [nextIndexToProcess, lastIndexExclusive) for which
  a row lock can be acquired. All mutations with locked rows are considered to be
@@ -807,7 +807,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createMiniBatch</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3282">createMiniBatch</a>(int&nbsp;lastIndexExclusive,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3288">createMiniBatch</a>(int&nbsp;lastIndexExclusive,
                                                                  int&nbsp;readyToWriteCount)</pre>
 </li>
 </ul>
@@ -817,7 +817,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>buildWALEdits</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3292">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;m
 iniBatchOp)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3298">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;m
 iniBatchOp)
                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are
  present, they are merged to result WALEdit.</div>
@@ -833,7 +833,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>completeMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3340">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3346">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This method completes mini-batch operations by calling postBatchMutate() CP hook (if
@@ -850,7 +850,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>doPostOpCleanupForMiniBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3348">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3354">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;walEdit,
                                         boolean&nbsp;success)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -866,7 +866,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>doFinishHotnessProtector</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3354">doFinishHotnessProtector</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3360">doFinishHotnessProtector</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp)</pre>
 </li>
 </ul>
 <a name="applyFamilyMapToMemStore-java.util.Map-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">
@@ -875,7 +875,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>applyFamilyMapToMemStore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3391">applyFamilyMapToMemStore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3397">applyFamilyMapToMemStore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a>&nbsp;memstoreAccounting)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Atomically apply the given map of family->edits to the memstore.
@@ -896,7 +896,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>addFamilyMapToWALEdit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3407">addFamilyMapToWALEdit</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3413">addFamilyMapToWALEdit</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
                                    <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;walEdit)</pre>
 <div class="block">Append the given map of family->edits to a WALEdit data structure.
  This does not write to the WAL itself.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
index 0c76e67..fe65fb6 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5935">HRegion.BulkLoadListener</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5941">HRegion.BulkLoadListener</a></pre>
 <div class="block">Listener class to enable callers of
  bulkLoadHFile() to perform any necessary
  pre/post processing of a given bulkload call</div>
@@ -174,7 +174,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareBulkLoad</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5943">prepareBulkLoad</a>(byte[]&nbsp;family,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5949">prepareBulkLoad</a>(byte[]&nbsp;family,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcPath,
                        boolean&nbsp;copyFile)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -196,7 +196,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>doneBulkLoad</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5952">doneBulkLoad</a>(byte[]&nbsp;family,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5958">doneBulkLoad</a>(byte[]&nbsp;family,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcPath)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Called after a successful HFile load</div>
@@ -215,7 +215,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>failedBulkLoad</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5960">failedBulkLoad</a>(byte[]&nbsp;family,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.5966">failedBulkLoad</a>(byte[]&nbsp;family,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcPath)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Called after a failed HFile load</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
index 8befd04..b7afd54 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2156">HRegion.FlushResult.Result</a>
+<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2162">HRegion.FlushResult.Result</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&gt;</pre>
 </li>
 </ul>
@@ -216,7 +216,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>FLUSHED_NO_COMPACTION_NEEDED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2157">FLUSHED_NO_COMPACTION_NEEDED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2163">FLUSHED_NO_COMPACTION_NEEDED</a></pre>
 </li>
 </ul>
 <a name="FLUSHED_COMPACTION_NEEDED">
@@ -225,7 +225,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>FLUSHED_COMPACTION_NEEDED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2158">FLUSHED_COMPACTION_NEEDED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2164">FLUSHED_COMPACTION_NEEDED</a></pre>
 </li>
 </ul>
 <a name="CANNOT_FLUSH_MEMSTORE_EMPTY">
@@ -234,7 +234,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>CANNOT_FLUSH_MEMSTORE_EMPTY</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2161">CANNOT_FLUSH_MEMSTORE_EMPTY</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2167">CANNOT_FLUSH_MEMSTORE_EMPTY</a></pre>
 </li>
 </ul>
 <a name="CANNOT_FLUSH">
@@ -243,7 +243,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CANNOT_FLUSH</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2162">CANNOT_FLUSH</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2168">CANNOT_FLUSH</a></pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
index b117da1..ce6a76d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2155">HRegion.FlushResult</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2161">HRegion.FlushResult</a></pre>
 </li>
 </ul>
 </div>
@@ -180,7 +180,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>getResult</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2166">getResult</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2172">getResult</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the detailed result code</dd>
@@ -193,7 +193,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>isFlushSucceeded</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2169">isFlushSucceeded</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2175">isFlushSucceeded</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if the memstores were flushed, else false</dd>
@@ -206,7 +206,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isCompactionNeeded</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2172">isCompactionNeeded</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2178">isCompactionNeeded</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if the flush requested a compaction, else false</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
index b7d292e..280dacf 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3426">HRegion.MutationBatchOperation</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3432">HRegion.MutationBatchOperation</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</pre>
 <div class="block">Batch of mutation operations. Base class is shared with <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegion.ReplayBatchOperation</code></a> as most
  of the logic is same.</div>
@@ -342,7 +342,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>nonceGroup</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3427">nonceGroup</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3433">nonceGroup</a></pre>
 </li>
 </ul>
 <a name="nonce">
@@ -351,7 +351,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>nonce</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3428">nonce</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3434">nonce</a></pre>
 </li>
 </ul>
 </li>
@@ -368,7 +368,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MutationBatchOperation</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3429">MutationBatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3435">MutationBatchOperation</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/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;operations,
                               boolean&nbsp;atomic,
                               long&nbsp;nonceGroup,
@@ -389,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3438">getMutation</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3444">getMutation</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutation-int-">getMutation</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -402,7 +402,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3443">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3449">getNonceGroup</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonceGroup-int-">getNonceGroup</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -415,7 +415,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3448">getNonce</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3454">getNonce</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonce-int-">getNonce</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -428,7 +428,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3453">getMutationsForCoprocs</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3459">getMutationsForCoprocs</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutationsForCoprocs--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">This method is potentially expensive and useful mostly for non-replay CP path.</div>
 <dl>
@@ -443,7 +443,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3458">isInReplay</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3464">isInReplay</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#isInReplay--">isInReplay</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -456,7 +456,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrigLogSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3463">getOrigLogSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3469">getOrigLogSeqNum</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getOrigLogSeqNum--">getOrigLogSeqNum</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -469,7 +469,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>startRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3468">startRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3474">startRegionOperation</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -485,7 +485,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3473">closeRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3479">closeRegionOperation</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -501,7 +501,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPreparePut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3478">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3484">checkAndPreparePut</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;p)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPreparePut-org.apache.hadoop.hbase.client.Put-">HRegion.BatchOperation</a></code></span></div>
 <div class="block">Implement any Put request specific check and prepare logic here. Please refer to
@@ -520,7 +520,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndPrepare</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3483">checkAndPrepare</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3489">checkAndPrepare</a>()
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#checkAndPrepare--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">Validates each mutation and prepares a batch for write. If necessary (non-replay case), runs
@@ -542,7 +542,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3528">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3534">prepareMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                        long&nbsp;timestamp,
                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks)
                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -563,7 +563,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>buildWALEdits</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3564">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt
 ;&nbsp;miniBatchOp)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>,<a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3570">buildWALEdits</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt
 ;&nbsp;miniBatchOp)
                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#buildWALEdits-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-">HRegion.BatchOperation</a></code></span></div>
 <div class="block">Builds separate WALEdit per nonce by applying input mutations. If WALEdits from CP are
@@ -582,7 +582,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMiniBatchOperationsToMemStore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3575">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3581">writeMiniBatchOperationsToMemStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                                                                     @Nullable
                                                                                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                                                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -602,7 +602,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>completeMiniBatchOperations</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3586">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3592">completeMiniBatchOperations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;writeEntry)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#completeMiniBatchOperations-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">HRegion.BatchOperation</a></code></span></div>
@@ -622,7 +622,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>doPostOpCleanupForMiniBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3598">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3604">doPostOpCleanupForMiniBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                         <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;walEdit,
                                         boolean&nbsp;success)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -640,7 +640,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>callPreMutateCPHook</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3647">callPreMutateCPHook</a>(int&nbsp;index,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3653">callPreMutateCPHook</a>(int&nbsp;index,
                                  <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;walEdit,
                                  int[]&nbsp;metrics)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -659,7 +659,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndMergeCPMutations</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3684">checkAndMergeCPMutations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3690">checkAndMergeCPMutations</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp,
                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a>&gt;&nbsp;acquiredRowLocks,
                                       long&nbsp;timestamp)
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -675,7 +675,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>mergeFamilyMaps</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3719">mergeFamilyMaps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3725">mergeFamilyMaps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;toBeMerged)</pre>
 </li>
 </ul>


[44/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 fcdadf0..7a4c738 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -399,6 +399,8 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableBuilderBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableBuilderBase</span></a> (implements org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableBuilder.html" title="interface in org.apache.hadoop.hbase.client">TableBuilder</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorBuilder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorBuilder.ModifyableTableDescriptor</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptorUtils.TableDescriptorDelta</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState</span></a></li>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
@@ -551,23 +553,23 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-use.html b/devapidocs/org/apache/hadoop/hbase/client/package-use.html
index 4d8b7b6..3ed3a88 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-use.html
@@ -1603,14 +1603,17 @@ service.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.TableDescriptorDelta.html#org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TableState.html#org.apache.hadoop.hbase.client">TableState</a>
 <div class="block">Represents table state.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TableState.State.html#org.apache.hadoop.hbase.client">TableState.State</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/ZKAsyncRegistry.Converter.html#org.apache.hadoop.hbase.client">ZKAsyncRegistry.Converter</a>&nbsp;</td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html b/devapidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html
index 9658dfa..71bdc2a 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/replication/TableCFs.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TableCFs.html#line.32">TableCFs</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Used by <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#listReplicatedTableCFs--"><code>Admin.listReplicatedTableCFs()</code></a>.
- The cfs is a map of <ColumnFamily, ReplicationScope>.</div>
+ The cfs is a map of &lt;ColumnFamily, ReplicationScope>.</div>
 </li>
 </ul>
 </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
index f206225..9bfbc14 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
@@ -1455,22 +1455,12 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
@@ -1626,144 +1616,115 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/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;tables,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;encodedRegionNames)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionInfos,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;description)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                     <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          boolean&nbsp;newValue,
                          <a href="../../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
                <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
            <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
            <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
               byte[]&nbsp;splitRow)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
              <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
            <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
            boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                               <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CoprocessorWhitelistMasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/CoprocessorWhitelistMasterObserver.html#verifyCoprocessors-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-">verifyCoprocessors</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)</code>


[45/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html b/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html
new file mode 100644
index 0000000..755461b
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html
@@ -0,0 +1,368 @@
+<!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>TableDescriptorUtils.TableDescriptorDelta (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="TableDescriptorUtils.TableDescriptorDelta (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TableDescriptorUtils.TableDescriptorDelta.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/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.TableDescriptorDelta.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.client</div>
+<h2 title="Class TableDescriptorUtils.TableDescriptorDelta" class="title">Class TableDescriptorUtils.TableDescriptorDelta</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TableDescriptorUtils.TableDescriptorDelta</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/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html#line.34">TableDescriptorUtils.TableDescriptorDelta</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</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="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#columnsAdded">columnsAdded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#columnsDeleted">columnsDeleted</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#columnsModified">columnsModified</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="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#TableDescriptorDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">TableDescriptorDelta</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+                    <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</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><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#getColumnsAdded--">getColumnsAdded</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#getColumnsDeleted--">getColumnsDeleted</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#getColumnsModified--">getColumnsModified</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://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="https://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="https://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="columnsAdded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>columnsAdded</h4>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#line.35">columnsAdded</a></pre>
+</li>
+</ul>
+<a name="columnsDeleted">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>columnsDeleted</h4>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#line.36">columnsDeleted</a></pre>
+</li>
+</ul>
+<a name="columnsModified">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>columnsModified</h4>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#line.37">columnsModified</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="TableDescriptorDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TableDescriptorDelta</h4>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#line.39">TableDescriptorDelta</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+                             <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getColumnsAdded--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getColumnsAdded</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#line.76">getColumnsAdded</a>()</pre>
+</li>
+</ul>
+<a name="getColumnsDeleted--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getColumnsDeleted</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#line.80">getColumnsDeleted</a>()</pre>
+</li>
+</ul>
+<a name="getColumnsModified--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getColumnsModified</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#line.84">getColumnsModified</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TableDescriptorUtils.TableDescriptorDelta.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/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.TableDescriptorDelta.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;2018 <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/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.html b/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
new file mode 100644
index 0000000..b39efa0
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/client/TableDescriptorUtils.html
@@ -0,0 +1,305 @@
+<!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>TableDescriptorUtils (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="TableDescriptorUtils (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/TableDescriptorUtils.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/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.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>Field&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>Field&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.client</div>
+<h2 title="Class TableDescriptorUtils" class="title">Class TableDescriptorUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TableDescriptorUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public final class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html#line.33">TableDescriptorUtils</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</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/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</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="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html#TableDescriptorUtils--">TableDescriptorUtils</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html#computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">computeDelta</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+            <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</code>
+<div class="block">Compares two <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://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="https://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="https://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">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TableDescriptorUtils--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TableDescriptorUtils</h4>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html#line.89">TableDescriptorUtils</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="computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>computeDelta</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TableDescriptorUtils.html#line.96">computeDelta</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+                                                                     <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</pre>
+<div class="block">Compares two <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a TableDescriptorDelta that contains the added/deleted/modified column names</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/TableDescriptorUtils.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/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.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>Field&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>Field&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;2018 <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/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/TableSnapshotScanner.html b/devapidocs/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
index 104be9f..299169a 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TableState.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -664,7 +664,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AbstractClientSca
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TableState.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
index 433f18b..4e100a9 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptor.html
@@ -651,68 +651,76 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
                            <a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;peerAdmin)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TableDescriptorUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html#computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">computeDelta</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+            <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</code>
+<div class="block">Compares two <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#copy-org.apache.hadoop.hbase.client.TableDescriptor-">copy</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#copy-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">copy</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;name,
     <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Creates a new table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RawAsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Creates a new table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>
 <div class="block">Creates a new table with an initial set of empty regions defined by the specified split keys.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RawAsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>
 <div class="block">Creates a new table with an initial set of empty regions defined by the specified split keys.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
@@ -721,28 +729,28 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Creates a new table with the specified number of regions.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RawAsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
            byte[]&nbsp;endKey,
            int&nbsp;numRegions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
            byte[]&nbsp;endKey,
            int&nbsp;numRegions)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
            byte[]&nbsp;endKey,
            int&nbsp;numRegions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
@@ -751,43 +759,43 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Creates a new table with the specified number of regions.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#createTableAsync-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
                 byte[][]&nbsp;splitKeys)</code>
 <div class="block">Creates a new table but does not block and wait for it to come online.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#createTableAsync-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
                 byte[][]&nbsp;splitKeys)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#modifyTable-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>
 <div class="block">Modify an existing table, more IRB friendly version.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RawAsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.html#modifyTable-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#modifyTable-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#modifyTable-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#modifyTable-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Modify an existing table, more IRB friendly version.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#modifyTable-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
            <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>
@@ -797,22 +805,22 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#modifyTable-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
            <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#modifyTableAsync-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>
 <div class="block">Modify an existing table, more IRB (ruby) friendly version.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#modifyTableAsync-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#modifyTableAsync-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>
@@ -822,18 +830,18 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#modifyTableAsync-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">modifyTableAsync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;td)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#newBuilder-org.apache.hadoop.hbase.client.TableDescriptor-">newBuilder</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Copy all values, families, and name from the input.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">TableDescriptorBuilder.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#toByteArray-org.apache.hadoop.hbase.client.TableDescriptor-">toByteArray</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
@@ -877,6 +885,10 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tr class="rowColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html#TableDescriptorBuilder-org.apache.hadoop.hbase.client.TableDescriptor-">TableDescriptorBuilder</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html#TableDescriptorDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">TableDescriptorDelta</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+                    <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.TableDescriptorDelta.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.TableDescriptorDelta.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.TableDescriptorDelta.html
new file mode 100644
index 0000000..0917c9b
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.TableDescriptorDelta.html
@@ -0,0 +1,171 @@
+<!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.client.TableDescriptorUtils.TableDescriptorDelta (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.client.TableDescriptorUtils.TableDescriptorDelta (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/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">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/client/class-use/TableDescriptorUtils.TableDescriptorDelta.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.TableDescriptorDelta.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.client.TableDescriptorUtils.TableDescriptorDelta" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TableDescriptorUtils.TableDescriptorDelta</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/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</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.client">org.apache.hadoop.hbase.client</a></td>
+<td class="colLast">
+<div class="block">Provides HBase Client</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a> that return <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</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>static <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TableDescriptorUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html#computeDelta-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">computeDelta</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;oldTD,
+            <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newTD)</code>
+<div class="block">Compares two <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>TableDescriptor</code></a> and indicate which columns were added, deleted,
+ or modified from oldTD to newTD</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">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/client/class-use/TableDescriptorUtils.TableDescriptorDelta.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.TableDescriptorDelta.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;2018 <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/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.html
new file mode 100644
index 0000000..8c9f94c
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/TableDescriptorUtils.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.client.TableDescriptorUtils (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.client.TableDescriptorUtils (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/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">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/client/class-use/TableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.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.client.TableDescriptorUtils" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TableDescriptorUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TableDescriptorUtils</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/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">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/client/class-use/TableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TableDescriptorUtils.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;2018 <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/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-frame.html b/devapidocs/org/apache/hadoop/hbase/client/package-frame.html
index 794582f..966b77d 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-frame.html
@@ -254,6 +254,8 @@
 <li><a href="TableBuilderBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableBuilderBase</a></li>
 <li><a href="TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorBuilder</a></li>
 <li><a href="TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorBuilder.ModifyableTableDescriptor</a></li>
+<li><a href="TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorUtils</a></li>
+<li><a href="TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableDescriptorUtils.TableDescriptorDelta</a></li>
 <li><a href="TableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableSnapshotScanner</a></li>
 <li><a href="TableState.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TableState</a></li>
 <li><a href="UnmodifyableHRegionInfo.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">UnmodifyableHRegionInfo</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/client/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-summary.html b/devapidocs/org/apache/hadoop/hbase/client/package-summary.html
index 78a22ea..fb2927f 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-summary.html
@@ -1437,6 +1437,14 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorUtils.TableDescriptorDelta.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorUtils.TableDescriptorDelta</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client">TableSnapshotScanner</a></td>
 <td class="colLast">
 <div class="block">A Scanner which performs a scan over snapshot files.</div>


[26/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or closed");<a na

<TRUNCATED>

[05/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html
index 8a96d4e..a07240b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.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":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":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";
@@ -147,14 +147,18 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private org.apache.hadoop.hbase.TableName</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#NON_EXISTENT_TABLE">NON_EXISTENT_TABLE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#NUM_RETRIES">NUM_RETRIES</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.junit.rules.TestName</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testName">testName</a></span></code>&nbsp;</td>
 </tr>
@@ -195,34 +199,35 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#getReportedSizesForTable-org.apache.hadoop.hbase.TableName-">getReportedSizesForTable</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tn)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#increaseQuotaLimit-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">increaseQuotaLimit</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tn,
-                  org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)</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/quotas/TestSpaceQuotas.html#removeAllQuotas--">removeAllQuotas</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#removeQuotaFromtable-org.apache.hadoop.hbase.TableName-">removeQuotaFromtable</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tn)</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#setQuotaAndThenDropTable-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">setQuotaAndThenDropTable</a></span>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#setQuotaAndThenIncreaseQuota-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">setQuotaAndThenIncreaseQuota</a></span>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#setQuotaAndThenRemove-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">setQuotaAndThenRemove</a></span>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)</code>&nbsp;</td>
 </tr>
-<tr id="i7" 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/quotas/TestSpaceQuotas.html#setQuotaAndThenRemoveInOneAmongTwoTables-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">setQuotaAndThenRemoveInOneAmongTwoTables</a></span>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)</code>&nbsp;</td>
 </tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#setQuotaLimit-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-long-">setQuotaLimit</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tn,
+             org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy,
+             long&nbsp;sizeInMBs)</code>&nbsp;</td>
+</tr>
 <tr id="i8" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#setUp--">setUp</a></span>()</code>&nbsp;</td>
@@ -285,77 +290,97 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i23" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableWithNoInserts--">testSetQuotaAndThenDropTableWithNoInserts</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableWithDisable--">testSetQuotaAndThenDropTableWithDisable</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i24" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableWithNoWrite--">testSetQuotaAndThenDropTableWithNoWrite</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableWithNoInserts--">testSetQuotaAndThenDropTableWithNoInserts</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i25" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenIncreaseQuotaWithNoInserts--">testSetQuotaAndThenIncreaseQuotaWithNoInserts</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenDropTableWithNoWrite--">testSetQuotaAndThenDropTableWithNoWrite</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i26" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenIncreaseQuotaWithNoWrite--">testSetQuotaAndThenIncreaseQuotaWithNoWrite</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenIncreaseQuotaWithNoInserts--">testSetQuotaAndThenIncreaseQuotaWithNoInserts</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i27" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenIncreaseQuotaWithNoWritesCompactions--">testSetQuotaAndThenIncreaseQuotaWithNoWritesCompactions</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenIncreaseQuotaWithNoWrite--">testSetQuotaAndThenIncreaseQuotaWithNoWrite</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i28" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveInOneWithDisable--">testSetQuotaAndThenRemoveInOneWithDisable</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenIncreaseQuotaWithNoWritesCompactions--">testSetQuotaAndThenIncreaseQuotaWithNoWritesCompactions</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i29" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveInOneWithNoInserts--">testSetQuotaAndThenRemoveInOneWithNoInserts</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveInOneWithDisable--">testSetQuotaAndThenRemoveInOneWithDisable</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i30" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveInOneWithNoWrite--">testSetQuotaAndThenRemoveInOneWithNoWrite</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveInOneWithNoInserts--">testSetQuotaAndThenRemoveInOneWithNoInserts</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i31" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveInOneWithNoWritesCompaction--">testSetQuotaAndThenRemoveInOneWithNoWritesCompaction</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveInOneWithNoWrite--">testSetQuotaAndThenRemoveInOneWithNoWrite</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i32" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithDisable--">testSetQuotaAndThenRemoveWithDisable</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveInOneWithNoWritesCompaction--">testSetQuotaAndThenRemoveInOneWithNoWritesCompaction</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i33" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithNoInserts--">testSetQuotaAndThenRemoveWithNoInserts</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithDisable--">testSetQuotaAndThenRemoveWithDisable</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i34" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithNoWrite--">testSetQuotaAndThenRemoveWithNoWrite</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithNoInserts--">testSetQuotaAndThenRemoveWithNoInserts</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i35" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithNoWritesCompactions--">testSetQuotaAndThenRemoveWithNoWritesCompactions</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithNoWrite--">testSetQuotaAndThenRemoveWithNoWrite</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i36" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testTableQuotaOverridesNamespaceQuota--">testTableQuotaOverridesNamespaceQuota</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaAndThenRemoveWithNoWritesCompactions--">testSetQuotaAndThenRemoveWithNoWritesCompactions</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i37" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaOnNonExistingTableWithDisable--">testSetQuotaOnNonExistingTableWithDisable</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i38" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaOnNonExistingTableWithNoInserts--">testSetQuotaOnNonExistingTableWithNoInserts</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i39" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaOnNonExistingTableWithNoWrites--">testSetQuotaOnNonExistingTableWithNoWrites</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i40" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testSetQuotaOnNonExistingTableWithNoWritesCompaction--">testSetQuotaOnNonExistingTableWithNoWritesCompaction</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#testTableQuotaOverridesNamespaceQuota--">testTableQuotaOverridesNamespaceQuota</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#verifyNoViolation-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.Mutation-">verifyNoViolation</a></span>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
                  org.apache.hadoop.hbase.TableName&nbsp;tn,
                  org.apache.hadoop.hbase.client.Mutation&nbsp;m)</code>&nbsp;</td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#verifyViolation-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.Mutation-">verifyViolation</a></span>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
                org.apache.hadoop.hbase.TableName&nbsp;tn,
                org.apache.hadoop.hbase.client.Mutation&nbsp;m)</code>&nbsp;</td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>private org.apache.hadoop.hbase.TableName</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#writeUntilViolation-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">writeUntilViolation</a></span>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate)</code>&nbsp;</td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>private org.apache.hadoop.hbase.TableName</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#writeUntilViolationAndVerifyViolation-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-org.apache.hadoop.hbase.client.Mutation-">writeUntilViolationAndVerifyViolation</a></span>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
                                      org.apache.hadoop.hbase.client.Mutation&nbsp;m)</code>&nbsp;</td>
@@ -443,12 +468,21 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <a name="helper">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>helper</h4>
 <pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaHelperForTests.html" title="class in org.apache.hadoop.hbase.quotas">SpaceQuotaHelperForTests</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.90">helper</a></pre>
 </li>
 </ul>
+<a name="NON_EXISTENT_TABLE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NON_EXISTENT_TABLE</h4>
+<pre>private final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.91">NON_EXISTENT_TABLE</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -480,7 +514,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.93">setUp</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.94">setUp</a>()
                   throws <a href="https://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>
@@ -494,7 +528,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.100">tearDown</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.101">tearDown</a>()
                      throws <a href="https://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>
@@ -508,7 +542,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeAllQuotas</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.105">removeAllQuotas</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.106">removeAllQuotas</a>()
                      throws <a href="https://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>
@@ -522,7 +556,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoInsertsWithPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.121">testNoInsertsWithPut</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.122">testNoInsertsWithPut</a>()
                           throws <a href="https://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>
@@ -536,7 +570,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoInsertsWithAppend</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.129">testNoInsertsWithAppend</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.130">testNoInsertsWithAppend</a>()
                              throws <a href="https://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>
@@ -550,7 +584,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoInsertsWithIncrement</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.137">testNoInsertsWithIncrement</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.138">testNoInsertsWithIncrement</a>()
                                 throws <a href="https://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>
@@ -564,7 +598,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testDeletesAfterNoInserts</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.144">testDeletesAfterNoInserts</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.145">testDeletesAfterNoInserts</a>()
                                throws <a href="https://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>
@@ -578,7 +612,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoWritesWithPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.157">testNoWritesWithPut</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.158">testNoWritesWithPut</a>()
                          throws <a href="https://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>
@@ -592,7 +626,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoWritesWithAppend</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.165">testNoWritesWithAppend</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.166">testNoWritesWithAppend</a>()
                             throws <a href="https://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>
@@ -606,7 +640,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoWritesWithIncrement</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.173">testNoWritesWithIncrement</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.174">testNoWritesWithIncrement</a>()
                                throws <a href="https://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>
@@ -620,7 +654,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoWritesWithDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.180">testNoWritesWithDelete</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.181">testNoWritesWithDelete</a>()
                             throws <a href="https://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>
@@ -634,7 +668,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoCompactions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.186">testNoCompactions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.187">testNoCompactions</a>()
                        throws <a href="https://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>
@@ -648,7 +682,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoEnableAfterDisablePolicy</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.211">testNoEnableAfterDisablePolicy</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.212">testNoEnableAfterDisablePolicy</a>()
                                     throws <a href="https://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>
@@ -662,7 +696,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNoBulkLoadsWithNoWrites</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.237">testNoBulkLoadsWithNoWrites</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.238">testNoBulkLoadsWithNoWrites</a>()
                                  throws <a href="https://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>
@@ -676,7 +710,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testAtomicBulkLoadUnderQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.257">testAtomicBulkLoadUnderQuota</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.258">testAtomicBulkLoadUnderQuota</a>()
                                   throws <a href="https://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>
@@ -690,7 +724,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testTableQuotaOverridesNamespaceQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.328">testTableQuotaOverridesNamespaceQuota</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.329">testTableQuotaOverridesNamespaceQuota</a>()
                                            throws <a href="https://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>
@@ -704,7 +738,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenRemoveWithNoInserts</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.353">testSetQuotaAndThenRemoveWithNoInserts</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.354">testSetQuotaAndThenRemoveWithNoInserts</a>()
                                             throws <a href="https://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>
@@ -718,7 +752,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenRemoveWithNoWrite</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.358">testSetQuotaAndThenRemoveWithNoWrite</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.359">testSetQuotaAndThenRemoveWithNoWrite</a>()
                                           throws <a href="https://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>
@@ -732,7 +766,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenRemoveWithNoWritesCompactions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.363">testSetQuotaAndThenRemoveWithNoWritesCompactions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.364">testSetQuotaAndThenRemoveWithNoWritesCompactions</a>()
                                                       throws <a href="https://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>
@@ -746,7 +780,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenRemoveWithDisable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.368">testSetQuotaAndThenRemoveWithDisable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.369">testSetQuotaAndThenRemoveWithDisable</a>()
                                           throws <a href="https://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>
@@ -760,7 +794,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenDropTableWithNoInserts</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.373">testSetQuotaAndThenDropTableWithNoInserts</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.374">testSetQuotaAndThenDropTableWithNoInserts</a>()
                                                throws <a href="https://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>
@@ -774,7 +808,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenDropTableWithNoWrite</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.378">testSetQuotaAndThenDropTableWithNoWrite</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.379">testSetQuotaAndThenDropTableWithNoWrite</a>()
                                              throws <a href="https://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>
@@ -788,7 +822,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenDropTableeWithNoWritesCompactions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.383">testSetQuotaAndThenDropTableeWithNoWritesCompactions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.384">testSetQuotaAndThenDropTableeWithNoWritesCompactions</a>()
                                                           throws <a href="https://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>
@@ -796,13 +830,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="testSetQuotaAndThenDropTableWithDisable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testSetQuotaAndThenDropTableWithDisable</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.389">testSetQuotaAndThenDropTableWithDisable</a>()
+                                             throws <a href="https://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>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="testSetQuotaAndThenIncreaseQuotaWithNoInserts--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenIncreaseQuotaWithNoInserts</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.388">testSetQuotaAndThenIncreaseQuotaWithNoInserts</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.394">testSetQuotaAndThenIncreaseQuotaWithNoInserts</a>()
                                                    throws <a href="https://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>
@@ -816,7 +864,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenIncreaseQuotaWithNoWrite</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.393">testSetQuotaAndThenIncreaseQuotaWithNoWrite</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.399">testSetQuotaAndThenIncreaseQuotaWithNoWrite</a>()
                                                  throws <a href="https://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>
@@ -830,7 +878,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenIncreaseQuotaWithNoWritesCompactions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.398">testSetQuotaAndThenIncreaseQuotaWithNoWritesCompactions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.404">testSetQuotaAndThenIncreaseQuotaWithNoWritesCompactions</a>()
                                                              throws <a href="https://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>
@@ -844,7 +892,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenRemoveInOneWithNoInserts</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.403">testSetQuotaAndThenRemoveInOneWithNoInserts</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.409">testSetQuotaAndThenRemoveInOneWithNoInserts</a>()
                                                  throws <a href="https://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>
@@ -858,7 +906,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenRemoveInOneWithNoWrite</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.408">testSetQuotaAndThenRemoveInOneWithNoWrite</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.414">testSetQuotaAndThenRemoveInOneWithNoWrite</a>()
                                                throws <a href="https://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>
@@ -872,7 +920,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenRemoveInOneWithNoWritesCompaction</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.413">testSetQuotaAndThenRemoveInOneWithNoWritesCompaction</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.419">testSetQuotaAndThenRemoveInOneWithNoWritesCompaction</a>()
                                                           throws <a href="https://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>
@@ -886,7 +934,63 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetQuotaAndThenRemoveInOneWithDisable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.418">testSetQuotaAndThenRemoveInOneWithDisable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.424">testSetQuotaAndThenRemoveInOneWithDisable</a>()
+                                               throws <a href="https://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>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testSetQuotaOnNonExistingTableWithNoInserts--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testSetQuotaOnNonExistingTableWithNoInserts</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.429">testSetQuotaOnNonExistingTableWithNoInserts</a>()
+                                                 throws <a href="https://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>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testSetQuotaOnNonExistingTableWithNoWrites--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testSetQuotaOnNonExistingTableWithNoWrites</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.434">testSetQuotaOnNonExistingTableWithNoWrites</a>()
+                                                throws <a href="https://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>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testSetQuotaOnNonExistingTableWithNoWritesCompaction--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testSetQuotaOnNonExistingTableWithNoWritesCompaction</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.439">testSetQuotaOnNonExistingTableWithNoWritesCompaction</a>()
+                                                          throws <a href="https://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>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testSetQuotaOnNonExistingTableWithDisable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testSetQuotaOnNonExistingTableWithDisable</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.444">testSetQuotaOnNonExistingTableWithDisable</a>()
                                                throws <a href="https://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>
@@ -900,7 +1004,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setQuotaAndThenRemove</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.422">setQuotaAndThenRemove</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.448">setQuotaAndThenRemove</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
                             throws <a href="https://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>
@@ -914,7 +1018,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setQuotaAndThenDropTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.437">setQuotaAndThenDropTable</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.463">setQuotaAndThenDropTable</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
                                throws <a href="https://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>
@@ -928,7 +1032,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setQuotaAndThenIncreaseQuota</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.457">setQuotaAndThenIncreaseQuota</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.483">setQuotaAndThenIncreaseQuota</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
                                    throws <a href="https://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>
@@ -942,7 +1046,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setQuotaAndThenRemoveInOneAmongTwoTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.472">setQuotaAndThenRemoveInOneAmongTwoTables</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.498">setQuotaAndThenRemoveInOneAmongTwoTables</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
                                               throws <a href="https://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>
@@ -956,7 +1060,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeQuotaFromtable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.493">removeQuotaFromtable</a>(org.apache.hadoop.hbase.TableName&nbsp;tn)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.519">removeQuotaFromtable</a>(org.apache.hadoop.hbase.TableName&nbsp;tn)
                            throws <a href="https://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>
@@ -964,15 +1068,16 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="increaseQuotaLimit-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">
+<a name="setQuotaLimit-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>increaseQuotaLimit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.499">increaseQuotaLimit</a>(org.apache.hadoop.hbase.TableName&nbsp;tn,
-                                org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy)
-                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<h4>setQuotaLimit</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.525">setQuotaLimit</a>(org.apache.hadoop.hbase.TableName&nbsp;tn,
+                           org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policy,
+                           long&nbsp;sizeInMBs)
+                    throws <a href="https://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>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
@@ -985,7 +1090,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getReportedSizesForTable</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.client.RegionInfo,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.507">getReportedSizesForTable</a>(org.apache.hadoop.hbase.TableName&nbsp;tn)</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.client.RegionInfo,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.533">getReportedSizesForTable</a>(org.apache.hadoop.hbase.TableName&nbsp;tn)</pre>
 </li>
 </ul>
 <a name="writeUntilViolation-org.apache.hadoop.hbase.quotas.SpaceViolationPolicy-">
@@ -994,7 +1099,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeUntilViolation</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.TableName&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.519">writeUntilViolation</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate)
+<pre>private&nbsp;org.apache.hadoop.hbase.TableName&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.545">writeUntilViolation</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate)
                                                        throws <a href="https://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>
@@ -1008,7 +1113,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeUntilViolationAndVerifyViolation</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.TableName&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.535">writeUntilViolationAndVerifyViolation</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
+<pre>private&nbsp;org.apache.hadoop.hbase.TableName&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.557">writeUntilViolationAndVerifyViolation</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
                                                                                 org.apache.hadoop.hbase.client.Mutation&nbsp;m)
                                                                          throws <a href="https://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>
@@ -1023,7 +1128,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyViolation</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.542">verifyViolation</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.564">verifyViolation</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
                              org.apache.hadoop.hbase.TableName&nbsp;tn,
                              org.apache.hadoop.hbase.client.Mutation&nbsp;m)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -1039,7 +1144,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>verifyNoViolation</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.590">verifyNoViolation</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestSpaceQuotas.html#line.612">verifyNoViolation</a>(org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;policyToViolate,
                                org.apache.hadoop.hbase.TableName&nbsp;tn,
                                org.apache.hadoop.hbase.client.Mutation&nbsp;m)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html
index 5e97f42..7ea26c8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html
@@ -198,7 +198,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html#testIdMsg">testIdMsg</a></span></code>
-<div class="block">A message of the form "in test#<number>:" to include in logging.</div>
+<div class="block">A message of the form "in test#&lt;number>:" to include in logging.</div>
 </td>
 </tr>
 <tr class="altColor">
@@ -460,7 +460,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li class="blockList">
 <h4>testIdMsg</h4>
 <pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.html#line.128">testIdMsg</a></pre>
-<div class="block">A message of the form "in test#<number>:" to include in logging.</div>
+<div class="block">A message of the form "in test#&lt;number>:" to include in logging.</div>
 </li>
 </ul>
 <a name="GENERATION_SEED">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html
index b943e37..7fbe183 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestHRegion.html
@@ -3064,6 +3064,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  Needs to do the bit where we close latch on the WALKeyImpl on append else test hangs.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>a mock WAL</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 57979ea..d8674d9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -659,11 +659,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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>
 <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/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>
+<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>
 </ul>
 </li>
 </ul>


[12/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
index 168462e..67da347 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
@@ -213,330 +213,337 @@
 <span class="sourceLineNo">205</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.205"></a>
 <span class="sourceLineNo">206</span>          master.getMasterCoprocessorHost().preMoveServers(hostPorts, request.getTargetGroup());<a name="line.206"></a>
 <span class="sourceLineNo">207</span>        }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        groupAdminServer.moveServers(hostPorts, request.getTargetGroup());<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>          master.getMasterCoprocessorHost().postMoveServers(hostPorts, request.getTargetGroup());<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      } catch (IOException e) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      done.run(builder.build());<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    public void moveTables(RpcController controller, MoveTablesRequest request,<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        RpcCallback&lt;MoveTablesResponse&gt; done) {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      MoveTablesResponse.Builder builder = MoveTablesResponse.newBuilder();<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        tables.add(ProtobufUtil.toTableName(tableName));<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      LOG.info(master.getClientIdAuditPrefix() + " move tables " + tables +" to rsgroup "<a name="line.226"></a>
-<span class="sourceLineNo">227</span>          + request.getTargetGroup());<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      try {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          master.getMasterCoprocessorHost().preMoveTables(tables, request.getTargetGroup());<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        groupAdminServer.moveTables(tables, request.getTargetGroup());<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>          master.getMasterCoprocessorHost().postMoveTables(tables, request.getTargetGroup());<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        }<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      } catch (IOException e) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      done.run(builder.build());<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>    @Override<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    public void addRSGroup(RpcController controller, AddRSGroupRequest request,<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        RpcCallback&lt;AddRSGroupResponse&gt; done) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      AddRSGroupResponse.Builder builder = AddRSGroupResponse.newBuilder();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      LOG.info(master.getClientIdAuditPrefix() + " add rsgroup " + request.getRSGroupName());<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      try {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>          master.getMasterCoprocessorHost().preAddRSGroup(request.getRSGroupName());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        groupAdminServer.addRSGroup(request.getRSGroupName());<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          master.getMasterCoprocessorHost().postAddRSGroup(request.getRSGroupName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        }<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      } catch (IOException e) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      done.run(builder.build());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span>    @Override<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    public void removeRSGroup(RpcController controller,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>        RemoveRSGroupRequest request, RpcCallback&lt;RemoveRSGroupResponse&gt; done) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      RemoveRSGroupResponse.Builder builder =<a name="line.264"></a>
-<span class="sourceLineNo">265</span>          RemoveRSGroupResponse.newBuilder();<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      LOG.info(master.getClientIdAuditPrefix() + " remove rsgroup " + request.getRSGroupName());<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      try {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          master.getMasterCoprocessorHost().preRemoveRSGroup(request.getRSGroupName());<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        groupAdminServer.removeRSGroup(request.getRSGroupName());<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>          master.getMasterCoprocessorHost().postRemoveRSGroup(request.getRSGroupName());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      } catch (IOException e) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      done.run(builder.build());<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>    @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    public void balanceRSGroup(RpcController controller,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        BalanceRSGroupRequest request, RpcCallback&lt;BalanceRSGroupResponse&gt; done) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      BalanceRSGroupResponse.Builder builder = BalanceRSGroupResponse.newBuilder();<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      LOG.info(master.getClientIdAuditPrefix() + " balance rsgroup, group=" +<a name="line.285"></a>
-<span class="sourceLineNo">286</span>              request.getRSGroupName());<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      try {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>          master.getMasterCoprocessorHost().preBalanceRSGroup(request.getRSGroupName());<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        boolean balancerRan = groupAdminServer.balanceRSGroup(request.getRSGroupName());<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        builder.setBalanceRan(balancerRan);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          master.getMasterCoprocessorHost().postBalanceRSGroup(request.getRSGroupName(),<a name="line.294"></a>
-<span class="sourceLineNo">295</span>              balancerRan);<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        }<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      } catch (IOException e) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        builder.setBalanceRan(false);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      done.run(builder.build());<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>    @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    public void listRSGroupInfos(RpcController controller,<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        ListRSGroupInfosRequest request, RpcCallback&lt;ListRSGroupInfosResponse&gt; done) {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      ListRSGroupInfosResponse.Builder builder = ListRSGroupInfosResponse.newBuilder();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      LOG.info(master.getClientIdAuditPrefix() + " list rsgroup");<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      try {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        checkPermission("listRSGroup");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        for (RSGroupInfo RSGroupInfo : groupAdminServer.listRSGroups()) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>          builder.addRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      } catch (IOException e) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      done.run(builder.build());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    @Override<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    public void getRSGroupInfoOfServer(RpcController controller,<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        GetRSGroupInfoOfServerRequest request, RpcCallback&lt;GetRSGroupInfoOfServerResponse&gt; done) {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      GetRSGroupInfoOfServerResponse.Builder builder = GetRSGroupInfoOfServerResponse.newBuilder();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      Address hp = Address.fromParts(request.getServer().getHostName(),<a name="line.324"></a>
-<span class="sourceLineNo">325</span>          request.getServer().getPort());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, server="<a name="line.326"></a>
-<span class="sourceLineNo">327</span>          + hp);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      try {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        checkPermission("getRSGroupInfoOfServer");<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        RSGroupInfo info = groupAdminServer.getRSGroupOfServer(hp);<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        if (info != null) {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(info));<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      } catch (IOException e) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      done.run(builder.build());<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    @Override<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    public void moveServersAndTables(RpcController controller,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>        MoveServersAndTablesRequest request, RpcCallback&lt;MoveServersAndTablesResponse&gt; done) {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        tables.add(ProtobufUtil.toTableName(tableName));<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      }<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts<a name="line.352"></a>
-<span class="sourceLineNo">353</span>          + " and tables " + tables + " to rsgroup" + request.getTargetGroup());<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      try {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          master.getMasterCoprocessorHost().preMoveServersAndTables(hostPorts, tables,<a name="line.356"></a>
-<span class="sourceLineNo">357</span>              request.getTargetGroup());<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        groupAdminServer.moveServersAndTables(hostPorts, tables, request.getTargetGroup());<a name="line.359"></a>
+<span class="sourceLineNo">208</span>        checkPermission("moveServers");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        groupAdminServer.moveServers(hostPorts, request.getTargetGroup());<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>          master.getMasterCoprocessorHost().postMoveServers(hostPorts, request.getTargetGroup());<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      } catch (IOException e) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      done.run(builder.build());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    @Override<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    public void moveTables(RpcController controller, MoveTablesRequest request,<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        RpcCallback&lt;MoveTablesResponse&gt; done) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      MoveTablesResponse.Builder builder = MoveTablesResponse.newBuilder();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        tables.add(ProtobufUtil.toTableName(tableName));<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      LOG.info(master.getClientIdAuditPrefix() + " move tables " + tables +" to rsgroup "<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          + request.getTargetGroup());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      try {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>          master.getMasterCoprocessorHost().preMoveTables(tables, request.getTargetGroup());<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        checkPermission("moveTables");<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        groupAdminServer.moveTables(tables, request.getTargetGroup());<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>          master.getMasterCoprocessorHost().postMoveTables(tables, request.getTargetGroup());<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      } catch (IOException e) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      done.run(builder.build());<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>    @Override<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    public void addRSGroup(RpcController controller, AddRSGroupRequest request,<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        RpcCallback&lt;AddRSGroupResponse&gt; done) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      AddRSGroupResponse.Builder builder = AddRSGroupResponse.newBuilder();<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      LOG.info(master.getClientIdAuditPrefix() + " add rsgroup " + request.getRSGroupName());<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      try {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          master.getMasterCoprocessorHost().preAddRSGroup(request.getRSGroupName());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        checkPermission("addRSGroup");<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        groupAdminServer.addRSGroup(request.getRSGroupName());<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          master.getMasterCoprocessorHost().postAddRSGroup(request.getRSGroupName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      } catch (IOException e) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      done.run(builder.build());<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    @Override<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    public void removeRSGroup(RpcController controller,<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        RemoveRSGroupRequest request, RpcCallback&lt;RemoveRSGroupResponse&gt; done) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      RemoveRSGroupResponse.Builder builder =<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          RemoveRSGroupResponse.newBuilder();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      LOG.info(master.getClientIdAuditPrefix() + " remove rsgroup " + request.getRSGroupName());<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          master.getMasterCoprocessorHost().preRemoveRSGroup(request.getRSGroupName());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        checkPermission("removeRSGroup");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        groupAdminServer.removeRSGroup(request.getRSGroupName());<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          master.getMasterCoprocessorHost().postRemoveRSGroup(request.getRSGroupName());<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      } catch (IOException e) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      done.run(builder.build());<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    public void balanceRSGroup(RpcController controller,<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        BalanceRSGroupRequest request, RpcCallback&lt;BalanceRSGroupResponse&gt; done) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      BalanceRSGroupResponse.Builder builder = BalanceRSGroupResponse.newBuilder();<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      LOG.info(master.getClientIdAuditPrefix() + " balance rsgroup, group=" +<a name="line.289"></a>
+<span class="sourceLineNo">290</span>              request.getRSGroupName());<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      try {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>          master.getMasterCoprocessorHost().preBalanceRSGroup(request.getRSGroupName());<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        checkPermission("balanceRSGroup");<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        boolean balancerRan = groupAdminServer.balanceRSGroup(request.getRSGroupName());<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        builder.setBalanceRan(balancerRan);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>          master.getMasterCoprocessorHost().postBalanceRSGroup(request.getRSGroupName(),<a name="line.299"></a>
+<span class="sourceLineNo">300</span>              balancerRan);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      } catch (IOException e) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        builder.setBalanceRan(false);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      done.run(builder.build());<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    @Override<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    public void listRSGroupInfos(RpcController controller,<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        ListRSGroupInfosRequest request, RpcCallback&lt;ListRSGroupInfosResponse&gt; done) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      ListRSGroupInfosResponse.Builder builder = ListRSGroupInfosResponse.newBuilder();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      LOG.info(master.getClientIdAuditPrefix() + " list rsgroup");<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      try {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        checkPermission("listRSGroup");<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        for (RSGroupInfo RSGroupInfo : groupAdminServer.listRSGroups()) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>          builder.addRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      } catch (IOException e) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      done.run(builder.build());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>    @Override<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    public void getRSGroupInfoOfServer(RpcController controller,<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        GetRSGroupInfoOfServerRequest request, RpcCallback&lt;GetRSGroupInfoOfServerResponse&gt; done) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      GetRSGroupInfoOfServerResponse.Builder builder = GetRSGroupInfoOfServerResponse.newBuilder();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      Address hp = Address.fromParts(request.getServer().getHostName(),<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          request.getServer().getPort());<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, server="<a name="line.331"></a>
+<span class="sourceLineNo">332</span>          + hp);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      try {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        checkPermission("getRSGroupInfoOfServer");<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        RSGroupInfo info = groupAdminServer.getRSGroupOfServer(hp);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        if (info != null) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(info));<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      } catch (IOException e) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      done.run(builder.build());<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>    @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    public void moveServersAndTables(RpcController controller,<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        MoveServersAndTablesRequest request, RpcCallback&lt;MoveServersAndTablesResponse&gt; done) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        tables.add(ProtobufUtil.toTableName(tableName));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts<a name="line.357"></a>
+<span class="sourceLineNo">358</span>          + " and tables " + tables + " to rsgroup" + request.getTargetGroup());<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      try {<a name="line.359"></a>
 <span class="sourceLineNo">360</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>          master.getMasterCoprocessorHost().postMoveServersAndTables(hostPorts, tables,<a name="line.361"></a>
+<span class="sourceLineNo">361</span>          master.getMasterCoprocessorHost().preMoveServersAndTables(hostPorts, tables,<a name="line.361"></a>
 <span class="sourceLineNo">362</span>              request.getTargetGroup());<a name="line.362"></a>
 <span class="sourceLineNo">363</span>        }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      } catch (IOException e) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      done.run(builder.build());<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>    @Override<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    public void removeServers(RpcController controller,<a name="line.371"></a>
-<span class="sourceLineNo">372</span>        RemoveServersRequest request,<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        RpcCallback&lt;RemoveServersResponse&gt; done) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      RemoveServersResponse.Builder builder =<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          RemoveServersResponse.newBuilder();<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      Set&lt;Address&gt; servers = Sets.newHashSet();<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        servers.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      LOG.info(master.getClientIdAuditPrefix()<a name="line.380"></a>
-<span class="sourceLineNo">381</span>          + " remove decommissioned servers from rsgroup: " + servers);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      try {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          master.getMasterCoprocessorHost().preRemoveServers(servers);<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        groupAdminServer.removeServers(servers);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>          master.getMasterCoprocessorHost().postRemoveServers(servers);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      } catch (IOException e) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      done.run(builder.build());<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  }<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  boolean rsgroupHasServersOnline(TableDescriptor desc) throws IOException {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    String groupName;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    try {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      groupName =<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.401"></a>
-<span class="sourceLineNo">402</span>        .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      if (groupName == null) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    } catch (MasterNotRunningException | PleaseHoldException e) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      LOG.info("Master has not initialized yet; temporarily using default RSGroup '" +<a name="line.407"></a>
-<span class="sourceLineNo">408</span>          RSGroupInfo.DEFAULT_GROUP + "' for deploy of system table");<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (rsGroupInfo == null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      throw new ConstraintException(<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          "Default RSGroup (" + groupName + ") for this table's " + "namespace does not exist.");<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    for (ServerName onlineServer : master.getServerManager().createDestinationServersList()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      if (rsGroupInfo.getServers().contains(onlineServer.getAddress())) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        return true;<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      }<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    return false;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  void assignTableToGroup(TableDescriptor desc) throws IOException {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    String groupName =<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.428"></a>
-<span class="sourceLineNo">429</span>                .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    if (groupName == null) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (rsGroupInfo == null) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      throw new ConstraintException("Default RSGroup (" + groupName + ") for this table's "<a name="line.435"></a>
-<span class="sourceLineNo">436</span>          + "namespace does not exist.");<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    }<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    if (!rsGroupInfo.containsTable(desc.getTableName())) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      LOG.debug("Pre-moving table " + desc.getTableName() + " to RSGroup " + groupName);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      groupAdminServer.moveTables(Sets.newHashSet(desc.getTableName()), groupName);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
-<span class="sourceLineNo">443</span><a name="line.443"></a>
-<span class="sourceLineNo">444</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.444"></a>
-<span class="sourceLineNo">445</span>  // MasterObserver overrides<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>  @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  public void preCreateTableAction(<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      final TableDescriptor desc,<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      final RegionInfo[] regions) throws IOException {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    if (!desc.getTableName().isSystemTable() &amp;&amp; !rsgroupHasServersOnline(desc)) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      throw new HBaseIOException("No online servers in the rsgroup, which table " +<a name="line.454"></a>
-<span class="sourceLineNo">455</span>          desc.getTableName().getNameAsString() + " belongs to");<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    }<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  }<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  // Assign table to default RSGroup.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  @Override<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  public void postCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    assignTableToGroup(desc);<a name="line.463"></a>
+<span class="sourceLineNo">364</span>        checkPermission("moveServersAndTables");<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        groupAdminServer.moveServersAndTables(hostPorts, tables, request.getTargetGroup());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>          master.getMasterCoprocessorHost().postMoveServersAndTables(hostPorts, tables,<a name="line.367"></a>
+<span class="sourceLineNo">368</span>              request.getTargetGroup());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        }<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      } catch (IOException e) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      done.run(builder.build());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>    @Override<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    public void removeServers(RpcController controller,<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        RemoveServersRequest request,<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        RpcCallback&lt;RemoveServersResponse&gt; done) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      RemoveServersResponse.Builder builder =<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          RemoveServersResponse.newBuilder();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      Set&lt;Address&gt; servers = Sets.newHashSet();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        servers.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      LOG.info(master.getClientIdAuditPrefix()<a name="line.386"></a>
+<span class="sourceLineNo">387</span>          + " remove decommissioned servers from rsgroup: " + servers);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      try {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>          master.getMasterCoprocessorHost().preRemoveServers(servers);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        }<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        checkPermission("removeServers");<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        groupAdminServer.removeServers(servers);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>          master.getMasterCoprocessorHost().postRemoveServers(servers);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      } catch (IOException e) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      done.run(builder.build());<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>  boolean rsgroupHasServersOnline(TableDescriptor desc) throws IOException {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    String groupName;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    try {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      groupName =<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      if (groupName == null) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      }<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    } catch (MasterNotRunningException | PleaseHoldException e) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      LOG.info("Master has not initialized yet; temporarily using default RSGroup '" +<a name="line.414"></a>
+<span class="sourceLineNo">415</span>          RSGroupInfo.DEFAULT_GROUP + "' for deploy of system table");<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    if (rsGroupInfo == null) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      throw new ConstraintException(<a name="line.421"></a>
+<span class="sourceLineNo">422</span>          "Default RSGroup (" + groupName + ") for this table's " + "namespace does not exist.");<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    for (ServerName onlineServer : master.getServerManager().createDestinationServersList()) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      if (rsGroupInfo.getServers().contains(onlineServer.getAddress())) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        return true;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    return false;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  void assignTableToGroup(TableDescriptor desc) throws IOException {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    String groupName =<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    if (groupName == null) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    if (rsGroupInfo == null) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      throw new ConstraintException("Default RSGroup (" + groupName + ") for this table's "<a name="line.442"></a>
+<span class="sourceLineNo">443</span>          + "namespace does not exist.");<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    if (!rsGroupInfo.containsTable(desc.getTableName())) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      LOG.debug("Pre-moving table " + desc.getTableName() + " to RSGroup " + groupName);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>      groupAdminServer.moveTables(Sets.newHashSet(desc.getTableName()), groupName);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.451"></a>
+<span class="sourceLineNo">452</span>  // MasterObserver overrides<a name="line.452"></a>
+<span class="sourceLineNo">453</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>  @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  public void preCreateTableAction(<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      final TableDescriptor desc,<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      final RegionInfo[] regions) throws IOException {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    if (!desc.getTableName().isSystemTable() &amp;&amp; !rsgroupHasServersOnline(desc)) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      throw new HBaseIOException("No online servers in the rsgroup, which table " +<a name="line.461"></a>
+<span class="sourceLineNo">462</span>          desc.getTableName().getNameAsString() + " belongs to");<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    }<a name="line.463"></a>
 <span class="sourceLineNo">464</span>  }<a name="line.464"></a>
 <span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>  // Remove table from its RSGroup.<a name="line.466"></a>
+<span class="sourceLineNo">466</span>  // Assign table to default RSGroup.<a name="line.466"></a>
 <span class="sourceLineNo">467</span>  @Override<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.468"></a>
-<span class="sourceLineNo">469</span>                              TableName tableName) throws IOException {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    try {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      RSGroupInfo group = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      if (group != null) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        LOG.debug(String.format("Removing deleted table '%s' from rsgroup '%s'", tableName,<a name="line.473"></a>
-<span class="sourceLineNo">474</span>            group.getName()));<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        groupAdminServer.moveTables(Sets.newHashSet(tableName), null);<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    } catch (IOException ex) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      LOG.debug("Failed to perform RSGroup information cleanup for table: " + tableName, ex);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    }<a name="line.479"></a>
-<span class="sourceLineNo">480</span>  }<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>  @Override<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.483"></a>
-<span class="sourceLineNo">484</span>                                 NamespaceDescriptor ns) throws IOException {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    String group = ns.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    if(group != null &amp;&amp; groupAdminServer.getRSGroupInfo(group) == null) {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      throw new ConstraintException("Region server group "+group+" does not exit");<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    }<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>  @Override<a name="line.491"></a>
-<span class="sourceLineNo">492</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      NamespaceDescriptor currentNsDesc, NamespaceDescriptor newNsDesc) throws IOException {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    preCreateNamespace(ctx, newNsDesc);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>  @Override<a name="line.497"></a>
-<span class="sourceLineNo">498</span>  public void preCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      SnapshotDescription snapshot, TableDescriptor desc) throws IOException {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    assignTableToGroup(desc);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>  }<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>  @Override<a name="line.503"></a>
-<span class="sourceLineNo">504</span>  public void postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      List&lt;ServerName&gt; servers, List&lt;ServerName&gt; notClearedServers)<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      throws IOException {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    Set&lt;Address&gt; clearedServer = servers.stream().<a name="line.507"></a>
-<span class="sourceLineNo">508</span>        filter(server -&gt; !notClearedServers.contains(server)).<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        map(ServerName::getAddress).<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        collect(Collectors.toSet());<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    groupAdminServer.removeServers(clearedServer);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>  }<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>  public void checkPermission(String request) throws IOException {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    accessChecker.requirePermission(getActiveUser(), request, Action.ADMIN);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>  }<a name="line.516"></a>
-<span class="sourceLineNo">517</span><a name="line.517"></a>
-<span class="sourceLineNo">518</span>  /**<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * Returns the active user to which authorization checks should be applied.<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * If we are in the context of an RPC call, the remote user is used,<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * otherwise the currently logged in user is used.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   */<a name="line.522"></a>
-<span class="sourceLineNo">523</span>  private User getActiveUser() throws IOException {<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    // for non-rpc handling, fallback to system user<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    Optional&lt;User&gt; optionalUser = RpcServer.getRequestUser();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    if (optionalUser.isPresent()) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      return optionalUser.get();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    return userProvider.getCurrent();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>}<a name="line.531"></a>
+<span class="sourceLineNo">468</span>  public void postCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.468"></a>
+<span class="sourceLineNo">469</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    assignTableToGroup(desc);<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>  // Remove table from its RSGroup.<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  @Override<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                              TableName tableName) throws IOException {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    try {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      RSGroupInfo group = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      if (group != null) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        LOG.debug(String.format("Removing deleted table '%s' from rsgroup '%s'", tableName,<a name="line.480"></a>
+<span class="sourceLineNo">481</span>            group.getName()));<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        groupAdminServer.moveTables(Sets.newHashSet(tableName), null);<a name="line.482"></a>
+<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    } catch (IOException ex) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      LOG.debug("Failed to perform RSGroup information cleanup for table: " + tableName, ex);<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
+<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>  @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                 NamespaceDescriptor ns) throws IOException {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    String group = ns.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    if(group != null &amp;&amp; groupAdminServer.getRSGroupInfo(group) == null) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      throw new ConstraintException("Region server group "+group+" does not exit");<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>  }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>  @Override<a name="line.498"></a>
+<span class="sourceLineNo">499</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.499"></a>
+<span class="sourceLineNo">500</span>      NamespaceDescriptor currentNsDesc, NamespaceDescriptor newNsDesc) throws IOException {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    preCreateNamespace(ctx, newNsDesc);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>  }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>  @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>  public void preCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      SnapshotDescription snapshot, TableDescriptor desc) throws IOException {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>    assignTableToGroup(desc);<a name="line.507"></a>
+<span class="sourceLineNo">508</span>  }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>  @Override<a name="line.510"></a>
+<span class="sourceLineNo">511</span>  public void postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.511"></a>
+<span class="sourceLineNo">512</span>      List&lt;ServerName&gt; servers, List&lt;ServerName&gt; notClearedServers)<a name="line.512"></a>
+<span class="sourceLineNo">513</span>      throws IOException {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    Set&lt;Address&gt; clearedServer = servers.stream().<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        filter(server -&gt; !notClearedServers.contains(server)).<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        map(ServerName::getAddress).<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        collect(Collectors.toSet());<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    groupAdminServer.removeServers(clearedServer);<a name="line.518"></a>
+<span class="sourceLineNo">519</span>  }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>  public void checkPermission(String request) throws IOException {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    accessChecker.requirePermission(getActiveUser(), request, Action.ADMIN);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   * Returns the active user to which authorization checks should be applied.<a name="line.526"></a>
+<span class="sourceLineNo">527</span>   * If we are in the context of an RPC call, the remote user is used,<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   * otherwise the currently logged in user is used.<a name="line.528"></a>
+<span class="sourceLineNo">529</span>   */<a name="line.529"></a>
+<span class="sourceLineNo">530</span>  private User getActiveUser() throws IOException {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    // for non-rpc handling, fallback to system user<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    Optional&lt;User&gt; optionalUser = RpcServer.getRequestUser();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    if (optionalUser.isPresent()) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      return optionalUser.get();<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    return userProvider.getCurrent();<a name="line.536"></a>
+<span class="sourceLineNo">537</span>  }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>}<a name="line.538"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html
index 0443a28..fb5d137 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html
@@ -173,7 +173,7 @@
 <span class="sourceLineNo">165</span>   * @param pbBytes A pb serialized {@link AccessControlFilter} instance<a name="line.165"></a>
 <span class="sourceLineNo">166</span>   * @return An instance of {@link AccessControlFilter} made from &lt;code&gt;bytes&lt;/code&gt;<a name="line.166"></a>
 <span class="sourceLineNo">167</span>   * @throws org.apache.hadoop.hbase.exceptions.DeserializationException<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * @see {@link #toByteArray()}<a name="line.168"></a>
+<span class="sourceLineNo">168</span>   * @see #toByteArray()<a name="line.168"></a>
 <span class="sourceLineNo">169</span>   */<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  public static AccessControlFilter parseFrom(final byte [] pbBytes)<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  throws DeserializationException {<a name="line.171"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.html
index 0443a28..fb5d137 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessControlFilter.html
@@ -173,7 +173,7 @@
 <span class="sourceLineNo">165</span>   * @param pbBytes A pb serialized {@link AccessControlFilter} instance<a name="line.165"></a>
 <span class="sourceLineNo">166</span>   * @return An instance of {@link AccessControlFilter} made from &lt;code&gt;bytes&lt;/code&gt;<a name="line.166"></a>
 <span class="sourceLineNo">167</span>   * @throws org.apache.hadoop.hbase.exceptions.DeserializationException<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * @see {@link #toByteArray()}<a name="line.168"></a>
+<span class="sourceLineNo">168</span>   * @see #toByteArray()<a name="line.168"></a>
 <span class="sourceLineNo">169</span>   */<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  public static AccessControlFilter parseFrom(final byte [] pbBytes)<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  throws DeserializationException {<a name="line.171"></a>


[06/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html b/testdevapidocs/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html
index 815b946..a976c88 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/HConnectionTestingUtility.html
@@ -243,7 +243,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                                             throws org.apache.hadoop.hbase.ZooKeeperConnectionException</pre>
 <div class="block">Get a Mocked <code>ClusterConnection</code> that goes with the passed <code>conf</code>
  configuration instance.  Minimally the mock will return
- <code>conf</conf> when <code>Connection.getConfiguration()</code> is invoked.
+ &lt;code>conf&lt;/conf> when <code>Connection.getConfiguration()</code> is invoked.
  Be sure to shutdown the connection when done by calling
  <code>Connection.close()</code> else it will stick around; this is probably not what you want.</div>
 <dl>
@@ -317,10 +317,9 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>ClusterConnection object for <code>conf</code></dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>org.apache.hadoop.hbase.ZooKeeperConnectionException</code></dd>
+<dd><code>org.apache.hadoop.hbase.ZooKeeperConnectionException</code> - [Dead link]: See also
+ {http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html#spy(T)}</dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><code>{http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html#spy(T)}</code></dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html
index f49fab7..e2cfb1e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" target="_top">Frames</a></li>
@@ -553,7 +553,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html
new file mode 100644
index 0000000..aa76488
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html
@@ -0,0 +1,308 @@
+<!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>TestTableDescriptorUtils (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="TestTableDescriptorUtils (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/TestTableDescriptorUtils.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/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TestTableDescriptorUtils.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.client</div>
+<h2 title="Class TestTableDescriptorUtils" class="title">Class TestTableDescriptorUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestTableDescriptorUtils</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/client/TestTableDescriptorUtils.html#line.35">TestTableDescriptorUtils</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</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/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html#CLASS_RULE">CLASS_RULE</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/client/TestTableDescriptorUtils.html#TestTableDescriptorUtils--">TestTableDescriptorUtils</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/client/TestTableDescriptorUtils.html#testDelta--">testDelta</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://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="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://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="https://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="https://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="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html#line.37">CLASS_RULE</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="TestTableDescriptorUtils--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestTableDescriptorUtils</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html#line.35">TestTableDescriptorUtils</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="testDelta--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testDelta</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html#line.41">testDelta</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestTableDescriptorUtils.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/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TestTableDescriptorUtils.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;2018 <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/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/client/TestTableFavoredNodes.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestTableFavoredNodes.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestTableFavoredNodes.html
index a93ca44..df72d01 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestTableFavoredNodes.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestTableFavoredNodes.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableShell.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -584,7 +584,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestTableShell.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestTableDescriptorUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestTableDescriptorUtils.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestTableDescriptorUtils.html
new file mode 100644
index 0000000..34ef197
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestTableDescriptorUtils.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.client.TestTableDescriptorUtils (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.client.TestTableDescriptorUtils (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/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">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/client/class-use/TestTableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TestTableDescriptorUtils.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.client.TestTableDescriptorUtils" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestTableDescriptorUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestTableDescriptorUtils</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/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">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/client/class-use/TestTableDescriptorUtils.html" target="_top">Frames</a></li>
+<li><a href="TestTableDescriptorUtils.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;2018 <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/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html
index dd13b39..3d7ecd3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html
@@ -275,6 +275,7 @@
 <li><a href="TestSnapshotWithAcl.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestSnapshotWithAcl.AccessWriteAction</a></li>
 <li><a href="TestSplitOrMergeStatus.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestSplitOrMergeStatus</a></li>
 <li><a href="TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestTableDescriptorBuilder</a></li>
+<li><a href="TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestTableDescriptorUtils</a></li>
 <li><a href="TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestTableFavoredNodes</a></li>
 <li><a href="TestTableShell.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestTableShell</a></li>
 <li><a href="TestTableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestTableSnapshotScanner</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
index 10a6877..8a5fb9e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
@@ -1323,28 +1323,32 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client">TestTableFavoredNodes</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorUtils</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableShell.html" title="class in org.apache.hadoop.hbase.client">TestTableShell</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client">TestTableFavoredNodes</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client">TestTableSnapshotScanner</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableShell.html" title="class in org.apache.hadoop.hbase.client">TestTableShell</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client">TestTableSnapshotScanner</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestTimestampsFilter.html" title="class in org.apache.hadoop.hbase.client">TestTimestampsFilter</a></td>
 <td class="colLast">
 <div class="block">Run tests related to <code>TimestampsFilter</code> using HBase client APIs.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestUpdateConfiguration.html" title="class in org.apache.hadoop.hbase.client">TestUpdateConfiguration</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html" title="class in org.apache.hadoop.hbase.client">TestZKAsyncRegistry</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
index 58e8648..df64fc8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -516,6 +516,7 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotWithAcl.AccessWriteAction.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestSnapshotWithAcl.AccessWriteAction</span></a> (implements org.apache.hadoop.hbase.security.access.<a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestSplitOrMergeStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTableDescriptorBuilder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTableDescriptorUtils</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTableFavoredNodes</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestTableSnapshotScanner.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTableSnapshotScanner</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestTimestampsFilter.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTimestampsFilter</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/filter/StringRange.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/filter/StringRange.html b/testdevapidocs/org/apache/hadoop/hbase/filter/StringRange.html
index 2b3f905..da5fdb9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/filter/StringRange.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/filter/StringRange.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.51">StringRange</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.57">StringRange</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -181,30 +181,34 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/StringRange.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/StringRange.html#getEnd--">getEnd</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/StringRange.html#getStart--">getStart</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/StringRange.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/StringRange.html#inRange-java.lang.String-">inRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/StringRange.html#isEndInclusive--">isEndInclusive</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/StringRange.html#isStartInclusive--">isStartInclusive</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/StringRange.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
@@ -214,7 +218,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://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="https://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="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.htm
 l?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://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>
@@ -236,7 +240,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.52">start</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.58">start</a></pre>
 </li>
 </ul>
 <a name="end">
@@ -245,7 +249,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>end</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.53">end</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.59">end</a></pre>
 </li>
 </ul>
 <a name="startInclusive">
@@ -254,7 +258,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startInclusive</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.54">startInclusive</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.60">startInclusive</a></pre>
 </li>
 </ul>
 <a name="endInclusive">
@@ -263,7 +267,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>endInclusive</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.55">endInclusive</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.61">endInclusive</a></pre>
 </li>
 </ul>
 </li>
@@ -280,7 +284,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StringRange</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.57">StringRange</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;start,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.63">StringRange</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;start,
                    boolean&nbsp;startInclusive,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;end,
                    boolean&nbsp;endInclusive)</pre>
@@ -300,7 +304,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getStart</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.65">getStart</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.71">getStart</a>()</pre>
 </li>
 </ul>
 <a name="getEnd--">
@@ -309,7 +313,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getEnd</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.69">getEnd</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.75">getEnd</a>()</pre>
 </li>
 </ul>
 <a name="isStartInclusive--">
@@ -318,7 +322,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isStartInclusive</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.73">isStartInclusive</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.79">isStartInclusive</a>()</pre>
 </li>
 </ul>
 <a name="isEndInclusive--">
@@ -327,7 +331,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isEndInclusive</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.77">isEndInclusive</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.83">isEndInclusive</a>()</pre>
 </li>
 </ul>
 <a name="hashCode--">
@@ -336,20 +340,33 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.82">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.88">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
 </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/filter/StringRange.html#line.101">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="toString--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.95">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.119">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -362,7 +379,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>inRange</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.103">inRange</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/StringRange.html#line.127">inRange</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html b/testdevapidocs/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html
index 0aa8810..6b532bc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.123">TestColumnRangeFilter</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.147">TestColumnRangeFilter</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -230,7 +230,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.126">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.150">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.129">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.153">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -248,7 +248,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.131">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.155">LOG</a></pre>
 </li>
 </ul>
 <a name="name">
@@ -257,7 +257,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>name</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.134">name</a></pre>
+<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.158">name</a></pre>
 </li>
 </ul>
 </li>
@@ -274,7 +274,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestColumnRangeFilter</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.123">TestColumnRangeFilter</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.147">TestColumnRangeFilter</a>()</pre>
 </li>
 </ul>
 </li>
@@ -291,7 +291,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.140">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.161">setUpBeforeClass</a>()
                              throws <a href="https://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>
@@ -305,7 +305,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.148">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.166">tearDownAfterClass</a>()
                                throws <a href="https://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>
@@ -319,7 +319,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.156">setUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.171">setUp</a>()
            throws <a href="https://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>
@@ -333,7 +333,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.164">tearDown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.176">tearDown</a>()
               throws <a href="https://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>
@@ -347,7 +347,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>TestColumnRangeFilterClient</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.169">TestColumnRangeFilterClient</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.181">TestColumnRangeFilterClient</a>()
                                  throws <a href="https://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>
@@ -361,7 +361,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>generateRandomWords</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.251">generateRandomWords</a>(int&nbsp;numberOfWords,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/TestColumnRangeFilter.html#line.263">generateRandomWords</a>(int&nbsp;numberOfWords,
                                  int&nbsp;maxLengthOfWords)</pre>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html b/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html
index ec1aab5..b06b297 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html
@@ -577,11 +577,12 @@ extends <a href="../../../../../org/apache/hadoop/hbase/http/HttpServerFunctiona
  parameter.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>urlstring</code> - </dd>
-<dd><code>userName</code> - </dd>
+<dd><code>urlstring</code> - The url to access</dd>
+<dd><code>userName</code> - The user to perform access as</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>The HTTP response code</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there is a problem communicating with the server</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/io/hfile/KVGenerator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/KVGenerator.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/KVGenerator.html
index e272946..71e3c66 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/KVGenerator.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/KVGenerator.html
@@ -111,7 +111,7 @@ var activeTableTab = "activeTableTab";
 <br>
 <pre>class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/KVGenerator.html#line.32">KVGenerator</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Generate random <key, value> pairs.
+<div class="block">Generate random &lt;key, value> pairs.
  <p>
  Copied from
  <a href="https://issues.apache.org/jira/browse/HADOOP-3315">hadoop-3315 tfile</a>.

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html
index 06c4843..fcb14d8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html
@@ -118,7 +118,7 @@
 <tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/KVGenerator.html" title="class in org.apache.hadoop.hbase.io.hfile">KVGenerator</a></td>
 <td class="colLast">
-<div class="block">Generate random <key, value> pairs.</div>
+<div class="block">Generate random &lt;key, value> pairs.</div>
 </td>
 </tr>
 <tr class="rowColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index 4837d80..ec56445 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -158,8 +158,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html
index ee987a5..846fd9d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html
@@ -124,7 +124,7 @@
 </tr>
 <tr class="rowColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/KVGenerator.html#org.apache.hadoop.hbase.io.hfile">KVGenerator</a>
-<div class="block">Generate random <key, value> pairs.</div>
+<div class="block">Generate random &lt;key, value> pairs.</div>
 </td>
 </tr>
 <tr class="altColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/mapred/TestTableInputFormat.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/mapred/TestTableInputFormat.html b/testdevapidocs/org/apache/hadoop/hbase/mapred/TestTableInputFormat.html
index 3dc149d..a998aad 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/mapred/TestTableInputFormat.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/mapred/TestTableInputFormat.html
@@ -462,8 +462,9 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Setup a table with two rows and values.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>tableName</code> - </dd>
+<dd><code>tableName</code> - the name of the table to create</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Table instance for the created table.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
@@ -483,6 +484,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>tableName</code> - </dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Table instance for the created table.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestImportExport.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestImportExport.html b/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestImportExport.html
index e6b6743..9115a62 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestImportExport.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestImportExport.html
@@ -280,7 +280,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/TestImportExport.html#getCount-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.filter.Filter-">getCount</a></span>(org.apache.hadoop.hbase.client.Table&nbsp;table,
         org.apache.hadoop.hbase.filter.Filter&nbsp;filter)</code>
-<div class="block">Count the number of keyvalues in the specified table for the given timerange</div>
+<div class="block">Count the number of keyvalues in the specified table with the given filter</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
@@ -819,11 +819,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestImportExport.html#line.545">getCount</a>(org.apache.hadoop.hbase.client.Table&nbsp;table,
                      org.apache.hadoop.hbase.filter.Filter&nbsp;filter)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<div class="block">Count the number of keyvalues in the specified table for the given timerange</div>
+<div class="block">Count the number of keyvalues in the specified table with the given filter</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>table</code> - </dd>
+<dd><code>table</code> - the table to scan</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>the number of keyvalues found</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestTableInputFormat.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestTableInputFormat.html b/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestTableInputFormat.html
index 99a64ae..9964545 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestTableInputFormat.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestTableInputFormat.html
@@ -477,6 +477,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>tableName</code> - </dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Table instance for the created table.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
@@ -496,6 +497,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>tableName</code> - </dd>
 <dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Table instance for the created table.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/master/TestRegionPlacement.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/TestRegionPlacement.html b/testdevapidocs/org/apache/hadoop/hbase/master/TestRegionPlacement.html
index 5dedcb9..5f98658 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestRegionPlacement.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestRegionPlacement.html
@@ -598,7 +598,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  region server based on the plan is expected</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>expectedNum.</code> - </dd>
+<dd><code>expectedNum</code> - the expected number of assigned regions</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
@@ -648,14 +648,14 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRegionPlacement.html#line.544">createTable</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestRegionPlacement.html#line.543">createTable</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                 int&nbsp;regionNum)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create a table with specified table name and region number.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>tablename</code> - </dd>
-<dd><code>regionNum</code> - </dd>
+<dd><code>tableName</code> - the name of the table to be created</dd>
+<dd><code>regionNum</code> - number of regions to create</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/package-summary.html
index a06d889..86d6101 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-summary.html
@@ -135,7 +135,7 @@
 <td class="colLast">
 <div class="block">A predicate 'closure' used by the <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
  <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
- {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.</div>
+ <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-long-boolean-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, long, boolean, Predicate)</code></a> methods.</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 d479e67..6398907 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -576,15 +576,15 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/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/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/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/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/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/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/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/package-use.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-use.html b/testdevapidocs/org/apache/hadoop/hbase/package-use.html
index aac07da..29c2602 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-use.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-use.html
@@ -751,7 +751,7 @@
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/Waiter.Predicate.html#org.apache.hadoop.hbase">Waiter.Predicate</a>
 <div class="block">A predicate 'closure' used by the <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
  <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
- {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.</div>
+ <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-long-boolean-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, long, boolean, Predicate)</code></a> methods.</div>
 </td>
 </tr>
 </tbody>
@@ -2106,7 +2106,7 @@
 <td class="colOne"><a href="../../../../org/apache/hadoop/hbase/class-use/Waiter.Predicate.html#org.apache.hadoop.hbase.quotas">Waiter.Predicate</a>
 <div class="block">A predicate 'closure' used by the <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
  <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, Predicate)</code></a> and
- {@link Waiter#waitFor(Configuration, long, long, boolean, Predicate) methods.</div>
+ <a href="../../../../org/apache/hadoop/hbase/Waiter.html#waitFor-org.apache.hadoop.conf.Configuration-long-long-boolean-org.apache.hadoop.hbase.Waiter.Predicate-"><code>Waiter.waitFor(Configuration, long, long, boolean, Predicate)</code></a> methods.</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 b5bacb6..19002f2 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -205,8 +205,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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>


[19/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closing or clos

<TRUNCATED>

[33/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html b/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
index 87fcc45..e1bac44 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109
 ":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10};
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109
 ":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":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";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.LimitedPrivate(value="Configuration")
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.176">AccessController</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.175">AccessController</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessor</a>, org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.AccessControlService.Interface, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/copro
 cessor/RegionServerObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/EndpointObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">EndpointObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BulkLoadObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">BulkLoadObserver</a></pre>
 <div class="block">Provides basic authorization checks for data access and administrative
@@ -666,62 +666,48 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 </td>
 </tr>
 <tr id="i50" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
-<div class="block">Called before a new region server group is added</div>
-</td>
-</tr>
-<tr id="i51" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAppend-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Append-">preAppend</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>
 <div class="block">Called before Append.</div>
 </td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAppendAfterRowLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Append-">preAppendAfterRowLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                      <a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>
 <div class="block">Called before Append but after acquiring rowlock.</div>
 </td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to assigning a specific region.</div>
 </td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called prior to requesting rebalancing of the cluster regions, though after
  the initial checks for regions in transition and the balance switch flag.</div>
 </td>
 </tr>
-<tr id="i55" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>
-<div class="block">Called before a region server group is removed</div>
-</td>
-</tr>
-<tr id="i56" class="altColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                 boolean&nbsp;newValue)</code>
 <div class="block">Called prior to modifying the flag used to enable/disable region balancing.</div>
 </td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBatchMutate-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-">preBatchMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp)</code>
 <div class="block">This will be called for every batch mutation operation happening at the server.</div>
 </td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preBulkLoadHFile-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preBulkLoadHFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;familyPaths)</code>
@@ -730,7 +716,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  request.</div>
 </td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCheckAndDelete-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.CompareOperator-org.apache.hadoop.hbase.filter.ByteArrayComparable-org.apache.hadoop.hbase.client.Delete-boolean-">preCheckAndDelete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                  byte[]&nbsp;row,
@@ -743,7 +729,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before checkAndDelete.</div>
 </td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCheckAndDeleteAfterRowLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.CompareOperator-org.apache.hadoop.hbase.filter.ByteArrayComparable-org.apache.hadoop.hbase.client.Delete-boolean-">preCheckAndDeleteAfterRowLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                              byte[]&nbsp;row,
@@ -756,7 +742,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before checkAndDelete but after acquiring rowock.</div>
 </td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCheckAndPut-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.CompareOperator-org.apache.hadoop.hbase.filter.ByteArrayComparable-org.apache.hadoop.hbase.client.Put-boolean-">preCheckAndPut</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               byte[]&nbsp;row,
@@ -769,7 +755,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before checkAndPut.</div>
 </td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCheckAndPutAfterRowLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.CompareOperator-org.apache.hadoop.hbase.filter.ByteArrayComparable-org.apache.hadoop.hbase.client.Put-boolean-">preCheckAndPutAfterRowLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                           byte[]&nbsp;row,
@@ -782,26 +768,26 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before checkAndPut but after acquiring rowlock.</div>
 </td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCleanupBulkLoad-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preCleanupBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Authorization security check for
  SecureBulkLoadProtocol.cleanupBulkLoad()</div>
 </td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preClearCompactionQueues-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearCompactionQueues</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called before clearing compaction queues</div>
 </td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before clear dead region servers.</div>
 </td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -809,14 +795,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before a snapshot is cloned.</div>
 </td>
 </tr>
-<tr id="i67" class="rowColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preClose-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preClose</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
         boolean&nbsp;abortRequested)</code>
 <div class="block">Called before the region is reported as closed to the master.</div>
 </td>
 </tr>
-<tr id="i68" class="altColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCompact-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.regionserver.InternalScanner-org.apache.hadoop.hbase.regionserver.ScanType-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest-">preCompact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
           <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
@@ -828,7 +814,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  <code>StoreFile</code>.</div>
 </td>
 </tr>
-<tr id="i69" class="rowColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
@@ -836,7 +822,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i68" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
@@ -844,7 +830,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Observer implementations</div>
 </td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i69" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
@@ -852,7 +838,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before decommission region servers.</div>
 </td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i70" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDelete-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Delete-org.apache.hadoop.hbase.wal.WALEdit-org.apache.hadoop.hbase.client.Durability-">preDelete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete,
@@ -861,7 +847,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the client deletes a value.</div>
 </td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i71" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
@@ -869,14 +855,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  namespace</div>
 </td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i72" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Called before a snapshot is deleted.</div>
 </td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -884,35 +870,35 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  table.</div>
 </td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i74" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before disable a replication peer</div>
 </td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i75" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i76" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before enable a replication peer</div>
 </td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i77" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to enabling a table.</div>
 </td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i78" class="altColor">
 <td class="colFirst"><code>com.google.protobuf.Message</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preEndpointInvocation-org.apache.hadoop.hbase.coprocessor.ObserverContext-com.google.protobuf.Service-java.lang.String-com.google.protobuf.Message-">preEndpointInvocation</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      com.google.protobuf.Service&nbsp;service,
@@ -921,13 +907,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before an Endpoint service method is invoked.</div>
 </td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i79" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preExecuteProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preExecuteProcedures</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called before executing procedures</div>
 </td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preExists-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Get-boolean-">preExists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
@@ -935,27 +921,27 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the client tests for existence using a Get.</div>
 </td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)</code>
 <div class="block">Called before the memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a getLocks request has been processed.</div>
 </td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
 <div class="block">Called before a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetOp-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Get-java.util.List-">preGetOp</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
         <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
@@ -963,20 +949,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the client performs a Get</div>
 </td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a getProcedures request has been processed.</div>
 </td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before get the configured ReplicationPeerConfig for the specified peer</div>
 </td>
 </tr>
-<tr id="i89" class="rowColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -985,41 +971,41 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr id="i90" class="altColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preIncrement-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Increment-">preIncrement</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
             <a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
 <div class="block">Called before Increment.</div>
 </td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preIncrementAfterRowLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Increment-">preIncrementAfterRowLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                         <a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
 <div class="block">Called before Increment but after acquiring rowlock.</div>
 </td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before list decommissioned region servers.</div>
 </td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Called before list replication peers.</div>
 </td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Called before listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1027,14 +1013,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before heartbeat to a lock.</div>
 </td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>
 <div class="block">Called before merge regions request.</div>
 </td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;currentNsDesc,
@@ -1042,7 +1028,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called prior to modifying a namespace's properties.</div>
 </td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1051,7 +1037,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called prior to modifying a table's properties.</div>
 </td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
        <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
@@ -1060,45 +1046,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called prior to moving a given region from one region server to another.</div>
 </td>
 </tr>
-<tr id="i100" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>
-<div class="block">Called before servers are moved to target region server group</div>
-</td>
-</tr>
-<tr id="i101" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/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;tables,
-                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>
-<div class="block">Called before servers are moved to target region server group</div>
-</td>
-</tr>
-<tr id="i102" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
-             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>
-<div class="block">Called before tables are moved to target region server group</div>
-</td>
-</tr>
-<tr id="i103" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called before the region is reported as open to the master.</div>
 </td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#prePrepareBulkLoad-org.apache.hadoop.hbase.coprocessor.ObserverContext-">prePrepareBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Authorization check for
  SecureBulkLoadProtocol.prepareBulkLoad()</div>
 </td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#prePut-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Put-org.apache.hadoop.hbase.wal.WALEdit-org.apache.hadoop.hbase.client.Durability-">prePut</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
       <a href="../../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put,
@@ -1107,7 +1068,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the client stores a value.</div>
 </td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
@@ -1115,41 +1076,27 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before recommission region server.</div>
 </td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to marking a given region as offline.</div>
 </td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before remove a replication peer</div>
 </td>
 </tr>
-<tr id="i109" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
-<div class="block">Called before a region server group is removed</div>
-</td>
-</tr>
-<tr id="i110" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
-                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
-<div class="block">Called before servers are removed from rsgroup</div>
-</td>
-</tr>
-<tr id="i111" class="rowColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preReplicateLogEntries-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preReplicateLogEntries</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called before executing replication request to shipping log entries.</div>
 </td>
 </tr>
-<tr id="i112" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1159,7 +1106,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before new LockProcedure is queued.</div>
 </td>
 </tr>
-<tr id="i113" class="rowColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -1167,20 +1114,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before a snapshot is restored.</div>
 </td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRollWALWriterRequest-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preRollWALWriterRequest</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called before executing user request to roll a region server WAL.</div>
 </td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerClose-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-">preScannerClose</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s)</code>
 <div class="block">Called before the client closes a scanner.</div>
 </td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerNext-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-java.util.List-int-boolean-">preScannerNext</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s,
@@ -1190,14 +1137,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the client asks for the next row on a scanner.</div>
 </td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i110" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Scan-">preScannerOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Called before the client opens a new scanner.</div>
 </td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1205,7 +1152,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i112" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          boolean&nbsp;newValue,
@@ -1214,7 +1161,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  Supports Coprocessor 'bypass'.</div>
 </td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i113" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1222,7 +1169,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the table is stored.</div>
 </td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i114" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1230,7 +1177,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the user is stored.</div>
 </td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1239,7 +1186,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1248,14 +1195,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called prior to shutting down the full HBase cluster, including this
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a> process.</div>
 </td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i118" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
            <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -1263,7 +1210,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before a new snapshot is taken.</div>
 </td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1271,27 +1218,27 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the split region procedure is called.</div>
 </td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i120" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called immediately prior to stopping this
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code><

<TRUNCATED>

[50/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 09d1327..cb16698 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:20180529144501+00'00')
-/CreationDate (D:20180529144501+00'00')
+/ModDate (D:20180530143007+00'00')
+/CreationDate (D:20180530144531+00'00')
 >>
 endobj
 2 0 obj
@@ -340643,7 +340643,7 @@ endobj
 [1984 0 R /XYZ 0 841.89 null]
 endobj
 1986 0 obj
-<< /Length 12153
+<< /Length 11905
 >>
 stream
 q
@@ -341014,55 +341014,32 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.8981 Tw
-
 BT
 48.24 612.876 Td
 /F1.0 10.5 Tf
 [<66616d696c69657320616e64207468656e206d756c7469706c79696e672062> 20.0195 <7920>] TJ
 ET
 
-
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.8981 Tw
-
 BT
-218.5777 612.876 Td
+214.0873 612.876 Td
 /F3.0 10.5 Tf
 <68626173652e6d656d73746f72652e696e6d656d6f7279666c7573682e7468726573686f6c642e666163746f72> Tj
 ET
 
-
-0.0 Tw
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
-
-0.8981 Tw
-
-BT
-456.0562 612.876 Td
-/F1.0 10.5 Tf
-<202864656661756c7420697320302e303134202d> Tj
-ET
-
-
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
 BT
-48.24 597.096 Td
+451.5658 612.876 Td
 /F1.0 10.5 Tf
-<61206c6974746c65206c657373207468616e207468652073697a65206f662061206368756e6b292e> Tj
+<2e2044656661756c7420697320302e3031342e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -341073,7 +341050,7 @@ ET
 2.5792 Tw
 
 BT
-48.24 569.316 Td
+48.24 585.096 Td
 /F1.0 10.5 Tf
 [<546865206e756d626572206f6620666c757368657320636172726965642062> 20.0195 <792074686520706970656c696e65206973206d6f6e69746f72656420736f20617320746f206669742077697468696e2074686520626f756e6473206f66>] TJ
 ET
@@ -341088,7 +341065,7 @@ ET
 2.9884 Tw
 
 BT
-48.24 553.536 Td
+48.24 569.316 Td
 /F1.0 10.5 Tf
 [<6d656d73746f72652073697a696e672062757420796f752063616e20616c736f207365742061206d6178696d756d206f6e20746865206e756d626572206f6620666c757368657320746f74616c2062> 20.0195 <792073657474696e67>] TJ
 ET
@@ -341101,7 +341078,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 537.756 Td
+48.24 553.536 Td
 /F3.0 10.5 Tf
 <68626173652e68726567696f6e2e636f6d70616374696e672e706970656c696e652e7365676d656e74732e6c696d6974> Tj
 ET
@@ -341112,7 +341089,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-290.979 537.756 Td
+290.979 553.536 Td
 /F1.0 10.5 Tf
 <2e2044656661756c7420697320322e> Tj
 ET
@@ -341125,7 +341102,7 @@ ET
 1.0108 Tw
 
 BT
-48.24 509.976 Td
+48.24 525.756 Td
 /F1.0 10.5 Tf
 [<5768656e206120636f6c756d6e2066616d696c792053746f726520697320637265617465642c206974207361> 20.0195 <79732077686174206d656d73746f7265207479706520697320696e206566666563742e204173206f6620746869732077726974696e67>] TJ
 ET
@@ -341140,7 +341117,7 @@ ET
 1.6553 Tw
 
 BT
-48.24 494.196 Td
+48.24 509.976 Td
 /F1.0 10.5 Tf
 <746865726520697320746865206f6c642d7363686f6f6c20> Tj
 ET
@@ -341155,7 +341132,7 @@ ET
 1.6553 Tw
 
 BT
-167.2637 494.196 Td
+167.2637 509.976 Td
 /F3.0 10.5 Tf
 <44656661756c744d656d53746f7265> Tj
 ET
@@ -341170,7 +341147,7 @@ ET
 1.6553 Tw
 
 BT
-252.8912 494.196 Td
+252.8912 509.976 Td
 /F1.0 10.5 Tf
 <2077686963682066696c6c73206120> Tj
 ET
@@ -341185,7 +341162,7 @@ ET
 1.6553 Tw
 
 BT
-325.6308 494.196 Td
+325.6308 509.976 Td
 /F3.0 10.5 Tf
 <436f6e63757272656e74536b69704c6973744d6170> Tj
 ET
@@ -341200,7 +341177,7 @@ ET
 1.6553 Tw
 
 BT
-442.4013 494.196 Td
+442.4013 509.976 Td
 /F1.0 10.5 Tf
 <20616e64207468656e20666c757368657320746f> Tj
 ET
@@ -341215,7 +341192,7 @@ ET
 0.1775 Tw
 
 BT
-48.24 478.416 Td
+48.24 494.196 Td
 /F1.0 10.5 Tf
 <6469736b206f7220746865206e657720> Tj
 ET
@@ -341230,7 +341207,7 @@ ET
 0.1775 Tw
 
 BT
-128.8865 478.416 Td
+128.8865 494.196 Td
 /F3.0 10.5 Tf
 <436f6d70616374696e674d656d53746f7265> Tj
 ET
@@ -341245,7 +341222,7 @@ ET
 0.1775 Tw
 
 BT
-237.3935 478.416 Td
+237.3935 494.196 Td
 /F1.0 10.5 Tf
 <20746861742069732074686520696d706c656d656e746174696f6e20746861742070726f76696465732074686973206e657720696e2d6d656d6f7279> Tj
 ET
@@ -341260,7 +341237,7 @@ ET
 2.4665 Tw
 
 BT
-48.24 462.636 Td
+48.24 478.416 Td
 /F1.0 10.5 Tf
 [<636f6d70616374696f6e7320666163696c697479> 89.8438 <2e20486572652069732061206c6f672d6c696e652066726f6d206120526567696f6e53657276657220746861742073686f7773206120636f6c756d6e2066616d696c792053746f7265>] TJ
 ET
@@ -341273,7 +341250,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 446.856 Td
+48.24 462.636 Td
 /F1.0 10.5 Tf
 <6e616d656420> Tj
 ET
@@ -341284,7 +341261,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-85.599 446.856 Td
+85.599 462.636 Td
 /F3.0 10.5 Tf
 <66616d696c79> Tj
 ET
@@ -341295,7 +341272,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-116.322 446.856 Td
+116.322 462.636 Td
 /F1.0 10.5 Tf
 <20636f6e6669677572656420746f20757365206120> Tj
 ET
@@ -341306,7 +341283,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-217.1115 446.856 Td
+217.1115 462.636 Td
 /F3.0 10.5 Tf
 <436f6d70616374696e674d656d53746f7265> Tj
 ET
@@ -341317,7 +341294,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-325.6185 446.856 Td
+325.6185 462.636 Td
 /F1.0 10.5 Tf
 <3a> Tj
 ET
@@ -341326,28 +341303,28 @@ ET
 0.0 0.0 0.0 scn
 q
 0.9608 0.9608 0.9608 scn
-52.24 431.04 m
-543.04 431.04 l
-545.2491 431.04 547.04 429.2491 547.04 427.04 c
-547.04 354.08 l
-547.04 351.8709 545.2491 350.08 543.04 350.08 c
-52.24 350.08 l
-50.0309 350.08 48.24 351.8709 48.24 354.08 c
-48.24 427.04 l
-48.24 429.2491 50.0309 431.04 52.24 431.04 c
+52.24 446.82 m
+543.04 446.82 l
+545.2491 446.82 547.04 445.0291 547.04 442.82 c
+547.04 369.86 l
+547.04 367.6509 545.2491 365.86 543.04 365.86 c
+52.24 365.86 l
+50.0309 365.86 48.24 367.6509 48.24 369.86 c
+48.24 442.82 l
+48.24 445.0291 50.0309 446.82 52.24 446.82 c
 h
 f
 0.8 0.8 0.8 SCN
 0.75 w
-52.24 431.04 m
-543.04 431.04 l
-545.2491 431.04 547.04 429.2491 547.04 427.04 c
-547.04 354.08 l
-547.04 351.8709 545.2491 350.08 543.04 350.08 c
-52.24 350.08 l
-50.0309 350.08 48.24 351.8709 48.24 354.08 c
-48.24 427.04 l
-48.24 429.2491 50.0309 431.04 52.24 431.04 c
+52.24 446.82 m
+543.04 446.82 l
+545.2491 446.82 547.04 445.0291 547.04 442.82 c
+547.04 369.86 l
+547.04 367.6509 545.2491 365.86 543.04 365.86 c
+52.24 365.86 l
+50.0309 365.86 48.24 367.6509 48.24 369.86 c
+48.24 442.82 l
+48.24 445.0291 50.0309 446.82 52.24 446.82 c
 h
 S
 Q
@@ -341355,7 +341332,7 @@ Q
 0.2 0.2 0.2 SCN
 
 BT
-59.24 408.215 Td
+59.24 423.995 Td
 /F4.0 11 Tf
 <4e6f746520686f772074686520494e5f4d454d4f52595f434f4d50414354494f4e206174747269627574652073686f77732061732070617274206f6620746865205f4d455441444154415f206d61702e> Tj
 ET
@@ -341366,7 +341343,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-59.24 393.475 Td
+59.24 409.255 Td
 /F4.0 11 Tf
 <323031382d30332d33302031313a30323a32342c34363620494e464f20205b54696d652d6c696d6974656420746573745d20726567696f6e7365727665722e4853746f726528333235293a> Tj
 ET
@@ -341377,7 +341354,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-59.24 378.735 Td
+59.24 394.515 Td
 /F4.0 11 Tf
 <53746f72653d66616d696c792c20206d656d73746f726520747970653d436f6d70616374696e674d656d53746f72652c2073746f72616765506f6c6963793d484f542c> Tj
 ET
@@ -341388,7 +341365,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-59.24 363.995 Td
+59.24 379.775 Td
 /F4.0 11 Tf
 <76657269667942756c6b4c6f6164733d66616c73652c20706172616c6c656c507574436f756e745072696e745468726573686f6c643d3130> Tj
 ET
@@ -341401,7 +341378,7 @@ ET
 31.2774 Tw
 
 BT
-48.24 326.116 Td
+48.24 341.896 Td
 /F1.0 10.5 Tf
 [<456e61626c6520545241> 20.0195 <43452d6c6576656c206c6f6767696e67206f6e2074686520436f6d70616374696e674d656d53746f726520636c617373>] TJ
 ET
@@ -341414,7 +341391,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 310.336 Td
+48.24 326.116 Td
 /F1.0 10.5 Tf
 <28> Tj
 ET
@@ -341425,7 +341402,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-51.873 310.336 Td
+51.873 326.116 Td
 /F3.0 10.5 Tf
 <6f72672e6170616368652e6861646f6f702e68626173652e726567696f6e7365727665722e436f6d70616374696e674d656d53746f7265> Tj
 ET
@@ -341436,7 +341413,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-352.026 310.336 Td
+352.026 326.116 Td
 /F1.0 10.5 Tf
 [<2920746f207365652064657461696c206f6e20697473206f706572> 20.0195 <6174696f6e2e>] TJ
 ET
@@ -804197,2947 +804174,2947 @@ xref
 0005221031 00000 n 
 0005221405 00000 n 
 0005221453 00000 n 
-0005233662 00000 n 
-0005234023 00000 n 
-0005234429 00000 n 
-0005234777 00000 n 
-0005234825 00000 n 
-0005241183 00000 n 
-0005241531 00000 n 
-0005241579 00000 n 
-0005245867 00000 n 
-0005246241 00000 n 
-0005246289 00000 n 
-0005251930 00000 n 
-0005252349 00000 n 
-0005252397 00000 n 
-0005252592 00000 n 
-0005252640 00000 n 
-0005261102 00000 n 
-0005266721 00000 n 
-0005266770 00000 n 
-0005273187 00000 n 
-0005283923 00000 n 
-0005286711 00000 n 
-0005287098 00000 n 
-0005287146 00000 n 
-0005299544 00000 n 
-0005308360 00000 n 
-0005320288 00000 n 
-0005320675 00000 n 
-0005320723 00000 n 
-0005320771 00000 n 
-0005320819 00000 n 
-0005351335 00000 n 
-0005351683 00000 n 
-0005364679 00000 n 
-0005365085 00000 n 
-0005365133 00000 n 
-0005365264 00000 n 
-0005365312 00000 n 
-0005365360 00000 n 
-0005366062 00000 n 
-0005366110 00000 n 
-0005379183 00000 n 
-0005379585 00000 n 
-0005379720 00000 n 
-0005379857 00000 n 
-0005379905 00000 n 
-0005379953 00000 n 
-0005380001 00000 n 
-0005393929 00000 n 
-0005394331 00000 n 
-0005394379 00000 n 
-0005394515 00000 n 
-0005394652 00000 n 
-0005394700 00000 n 
-0005394748 00000 n 
-0005408032 00000 n 
-0005408419 00000 n 
-0005408467 00000 n 
-0005408515 00000 n 
-0005408563 00000 n 
-0005408611 00000 n 
-0005419729 00000 n 
-0005420116 00000 n 
-0005420164 00000 n 
-0005420212 00000 n 
-0005420260 00000 n 
-0005426426 00000 n 
-0005426787 00000 n 
-0005438618 00000 n 
-0005438992 00000 n 
-0005439040 00000 n 
-0005439088 00000 n 
-0005439136 00000 n 
-0005439514 00000 n 
-0005439562 00000 n 
-0005439610 00000 n 
-0005439658 00000 n 
-0005452117 00000 n 
-0005452491 00000 n 
-0005452539 00000 n 
-0005452587 00000 n 
-0005452635 00000 n 
-0005453163 00000 n 
-0005453211 00000 n 
-0005453259 00000 n 
-0005453307 00000 n 
-0005453355 00000 n 
-0005463341 00000 n 
-0005463715 00000 n 
-0005463763 00000 n 
-0005463811 00000 n 
-0005463859 00000 n 
-0005463907 00000 n 
-0005463955 00000 n 
-0005464003 00000 n 
-0005464051 00000 n 
-0005464099 00000 n 
-0005476622 00000 n 
-0005477015 00000 n 
-0005477063 00000 n 
-0005477111 00000 n 
-0005477159 00000 n 
-0005477300 00000 n 
-0005487493 00000 n 
-0005487841 00000 n 
-0005487889 00000 n 
-0005487937 00000 n 
-0005487985 00000 n 
-0005488033 00000 n 
-0005488081 00000 n 
-0005489000 00000 n 
-0005489335 00000 n 
-0005496586 00000 n 
-0005496973 00000 n 
-0005497021 00000 n 
-0005518566 00000 n 
-0005519496 00000 n 
-0005532817 00000 n 
-0005533191 00000 n 
-0005534658 00000 n 
-0005535006 00000 n 
-0005539609 00000 n 
-0005539957 00000 n 
-0005540005 00000 n 
-0005540612 00000 n 
-0005545407 00000 n 
-0005545755 00000 n 
-0005545803 00000 n 
-0005552115 00000 n 
-0005552476 00000 n 
-0005552524 00000 n 
-0005567937 00000 n 
-0005568311 00000 n 
-0005568359 00000 n 
-0005568407 00000 n 
-0005568455 00000 n 
-0005573143 00000 n 
-0005573510 00000 n 
-0005573558 00000 n 
-0005573695 00000 n 
-0005586148 00000 n 
-0005586591 00000 n 
-0005586639 00000 n 
-0005586835 00000 n 
-0005587030 00000 n 
-0005587224 00000 n 
-0005587419 00000 n 
-0005587614 00000 n 
-0005587809 00000 n 
-0005588001 00000 n 
-0005588191 00000 n 
-0005589745 00000 n 
-0005590112 00000 n 
-0005590307 00000 n 
-0005592839 00000 n 
-0005593215 00000 n 
-0005593263 00000 n 
-0005593451 00000 n 
-0005593580 00000 n 
-0005630669 00000 n 
-0005631043 00000 n 
-0005631091 00000 n 
-0005674837 00000 n 
-0005675185 00000 n 
-0005676929 00000 n 
-0005677305 00000 n 
-0005677353 00000 n 
-0005677543 00000 n 
-0005677667 00000 n 
-0005690219 00000 n 
-0005690652 00000 n 
-0005690700 00000 n 
-0005690932 00000 n 
-0005691162 00000 n 
-0005691210 00000 n 
-0005691258 00000 n 
-0005691397 00000 n 
-0005691520 00000 n 
-0005691568 00000 n 
-0005722360 00000 n 
-0005722749 00000 n 
-0005748350 00000 n 
-0005748739 00000 n 
-0005761209 00000 n 
-0005761598 00000 n 
-0005774818 00000 n 
-0005775207 00000 n 
-0005809900 00000 n 
-0005810276 00000 n 
-0005810324 00000 n 
-0005857075 00000 n 
-0005857423 00000 n 
-0005908857 00000 n 
-0005909205 00000 n 
-0005987591 00000 n 
-0005987952 00000 n 
-0005988001 00000 n 
-0006106281 00000 n 
-0006106629 00000 n 
-0006181099 00000 n 
-0006181447 00000 n 
-0006182297 00000 n 
-0006182664 00000 n 
-0006182712 00000 n 
-0006182834 00000 n 
-0006184228 00000 n 
-0006184604 00000 n 
-0006184652 00000 n 
-0006184849 00000 n 
-0006185045 00000 n 
-0006201190 00000 n 
-0006201628 00000 n 
-0006201676 00000 n 
-0006201845 00000 n 
-0006202019 00000 n 
-0006202195 00000 n 
-0006202403 00000 n 
-0006202609 00000 n 
-0006202792 00000 n 
-0006247408 00000 n 
-0006247756 00000 n 
-0006285769 00000 n 
-0006286117 00000 n 
-0006294551 00000 n 
-0006294912 00000 n 
-0006294960 00000 n 
-0006295008 00000 n 
-0006295056 00000 n 
-0006295104 00000 n 
-0006299610 00000 n 
-0006299958 00000 n 
-0006306830 00000 n 
-0006307204 00000 n 
-0006307252 00000 n 
-0006307300 00000 n 
-0006307348 00000 n 
-0006314846 00000 n 
-0006315194 00000 n 
-0006319728 00000 n 
-0006320089 00000 n 
-0006323186 00000 n 
-0006323580 00000 n 
-0006323628 00000 n 
-0006323800 00000 n 
-0006323938 00000 n 
-0006324075 00000 n 
-0006324211 00000 n 
-0006333734 00000 n 
-0006334122 00000 n 
-0006334170 00000 n 
-0006334218 00000 n 
-0006334266 00000 n 
-0006351993 00000 n 
-0006352380 00000 n 
-0006352429 00000 n 
-0006352478 00000 n 
-0006362379 00000 n 
-0006362753 00000 n 
-0006362801 00000 n 
-0006362850 00000 n 
-0006363520 00000 n 
-0006390947 00000 n 
-0006391334 00000 n 
-0006391382 00000 n 
-0006391431 00000 n 
-0006401373 00000 n 
-0006401748 00000 n 
-0006407261 00000 n 
-0006407609 00000 n 
-0006411574 00000 n 
-0006411941 00000 n 
-0006411989 00000 n 
-0006412158 00000 n 
-0006420070 00000 n 
-0006420444 00000 n 
-0006420492 00000 n 
-0006462326 00000 n 
-0006462674 00000 n 
-0006464397 00000 n 
-0006464745 00000 n 
-0006470081 00000 n 
-0006470474 00000 n 
-0006470522 00000 n 
-0006470701 00000 n 
-0006477630 00000 n 
-0006477991 00000 n 
-0006482453 00000 n 
-0006482814 00000 n 
-0006482862 00000 n 
-0006492421 00000 n 
-0006492782 00000 n 
-0006501522 00000 n 
-0006501883 00000 n 
-0006510356 00000 n 
-0006510717 00000 n 
-0006520660 00000 n 
-0006521049 00000 n 
-0006521097 00000 n 
-0006521357 00000 n 
-0006521551 00000 n 
-0006521599 00000 n 
-0006521647 00000 n 
-0006530905 00000 n 
-0006531266 00000 n 
-0006531314 00000 n 
-0006544022 00000 n 
-0006544383 00000 n 
-0006544431 00000 n 
-0006544479 00000 n 
-0006544527 00000 n 
-0006555268 00000 n 
-0006555629 00000 n 
-0006559483 00000 n 
-0006559831 00000 n 
-0006569799 00000 n 
-0006570147 00000 n 
-0006583236 00000 n 
-0006583584 00000 n 
-0006590486 00000 n 
-0006590915 00000 n 
-0006590963 00000 n 
-0006591174 00000 n 
-0006591368 00000 n 
-0006591575 00000 n 
-0006591777 00000 n 
-0006591974 00000 n 
-0006604533 00000 n 
-0006604958 00000 n 
-0006605006 00000 n 
-0006605228 00000 n 
-0006605276 00000 n 
-0006605324 00000 n 
-0006605546 00000 n 
-0006605781 00000 n 
-0006606018 00000 n 
-0006606145 00000 n 
-0006606378 00000 n 
-0006619068 00000 n 
-0006619511 00000 n 
-0006619559 00000 n 
-0006619607 00000 n 
-0006620020 00000 n 
-0006620432 00000 n 
-0006620480 00000 n 
-0006620677 00000 n 
-0006620725 00000 n 
-0006620963 00000 n 
-0006621201 00000 n 
-0006621438 00000 n 
-0006621670 00000 n 
-0006621790 00000 n 
-0006629882 00000 n 
-0006630338 00000 n 
-0006630386 00000 n 
-0006630512 00000 n 
-0006630636 00000 n 
-0006630964 00000 n 
-0006631188 00000 n 
-0006631413 00000 n 
-0006631616 00000 n 
-0006631810 00000 n 
-0006631931 00000 n 
-0006644161 00000 n 
-0006644548 00000 n 
-0006644596 00000 n 
-0006644644 00000 n 
-0006659313 00000 n 
-0006659713 00000 n 
-0006659761 00000 n 
-0006659809 00000 n 
-0006659858 00000 n 
-0006668737 00000 n 
-0006669130 00000 n 
-0006669323 00000 n 
-0006669371 00000 n 
-0006717872 00000 n 
-0006718246 00000 n 
-0006718294 00000 n 
-0006747660 00000 n 
-0006748021 00000 n 
-0006748069 00000 n 
-0006748117 00000 n 
-0006748165 00000 n 
-0006770868 00000 n 
-0006771261 00000 n 
-0006771309 00000 n 
-0006771692 00000 n 
-0006771741 00000 n 
-0006771978 00000 n 
-0006810159 00000 n 
-0006810520 00000 n 
-0006843511 00000 n 
-0006843872 00000 n 
-0006843920 00000 n 
-0006879271 00000 n 
-0006879632 00000 n 
-0006906593 00000 n 
-0006906941 00000 n 
-0006944853 00000 n 
-0006945201 00000 n 
-0006956144 00000 n 
-0006956524 00000 n 
-0006956572 00000 n 
-0006957107 00000 n 
-0006957248 00000 n 
-0006996213 00000 n 
-0006996561 00000 n 
-0007012471 00000 n 
-0007012945 00000 n 
-0007012993 00000 n 
-0007013246 00000 n 
-0007013429 00000 n 
-0007013612 00000 n 
-0007013795 00000 n 
-0007013978 00000 n 
-0007014161 00000 n 
-0007014344 00000 n 
-0007014527 00000 n 
-0007014710 00000 n 
-0007014893 00000 n 
-0007015325 00000 n 
-0007015673 00000 n 
-0007015721 00000 n 
-0007017992 00000 n 
-0007018353 00000 n 
-0007018401 00000 n 
-0007018449 00000 n 
-0007018497 00000 n 
-0007018911 00000 n 
-0007018959 00000 n 
-0007019007 00000 n 
-0007028728 00000 n 
-0007029076 00000 n 
-0007029124 00000 n 
-0007029172 00000 n 
-0007029220 00000 n 
-0007029268 00000 n 
-0007037395 00000 n 
-0007037838 00000 n 
-0007037886 00000 n 
-0007038020 00000 n 
-0007038068 00000 n 
-0007038254 00000 n 
-0007038458 00000 n 
-0007038661 00000 n 
-0007038837 00000 n 
-0007039077 00000 n 
-0007039284 00000 n 
-0007039501 00000 n 
-0007052919 00000 n 
-0007053397 00000 n 
-0007053445 00000 n 
-0007053493 00000 n 
-0007053541 00000 n 
-0007053745 00000 n 
-0007053946 00000 n 
-0007054145 00000 n 
-0007054337 00000 n 
-0007054528 00000 n 
-0007054780 00000 n 
-0007055032 00000 n 
-0007055163 00000 n 
-0007055289 00000 n 
-0007068877 00000 n 
-0007069297 00000 n 
-0007069345 00000 n 
-0007069486 00000 n 
-0007069534 00000 n 
-0007069582 00000 n 
-0007069915 00000 n 
-0007069963 00000 n 
-0007070109 00000 n 
-0007070157 00000 n 
-0007070292 00000 n 
-0007070340 00000 n 
-0007070532 00000 n 
-0007083371 00000 n 
-0007083841 00000 n 
-0007084072 00000 n 
-0007084120 00000 n 
-0007084275 00000 n 
-0007084323 00000 n 
-0007084492 00000 n 
-0007084541 00000 n 
-0007084690 00000 n 
-0007084739 00000 n 
-0007084894 00000 n 
-0007084943 00000 n 
-0007085095 00000 n 
-0007085245 00000 n 
-0007085391 00000 n 
-0007085586 00000 n 
-0007085780 00000 n 
-0007085829 00000 n 
-0007086024 00000 n 
-0007109967 00000 n 
-0007110315 00000 n 
-0007111474 00000 n 
-0007111809 00000 n 
-0007112985 00000 n 
-0007113352 00000 n 
-0007113400 00000 n 
-0007113525 00000 n 
-0007124708 00000 n 
-0007125169 00000 n 
-0007125217 00000 n 
-0007125265 00000 n 
-0007125392 00000 n 
-0007125440 00000 n 
-0007125560 00000 n 
-0007125699 00000 n 
-0007125747 00000 n 
-0007125971 00000 n 
-0007126106 00000 n 
-0007126154 00000 n 
-0007126337 00000 n 
-0007126531 00000 n 
-0007126726 00000 n 
-0007126849 00000 n 
-0007127052 00000 n 
-0007127100 00000 n 
-0007143161 00000 n 
-0007143563 00000 n 
-0007143611 00000 n 
-0007143744 00000 n 
-0007143969 00000 n 
-0007144017 00000 n 
-0007161064 00000 n 
-0007161489 00000 n 
-0007161537 00000 n 
-0007161760 00000 n 
-0007161881 00000 n 
-0007161929 00000 n 
-0007162056 00000 n 
-0007162279 00000 n 
-0007162327 00000 n 
-0007162452 00000 n 
-0007162577 00000 n 
-0007162625 00000 n 
-0007163990 00000 n 
+0005233414 00000 n 
+0005233775 00000 n 
+0005234181 00000 n 
+0005234529 00000 n 
+0005234577 00000 n 
+0005240935 00000 n 
+0005241283 00000 n 
+0005241331 00000 n 
+0005245619 00000 n 
+0005245993 00000 n 
+0005246041 00000 n 
+0005251682 00000 n 
+0005252101 00000 n 
+0005252149 00000 n 
+0005252344 00000 n 
+0005252392 00000 n 
+0005260854 00000 n 
+0005266473 00000 n 
+0005266522 00000 n 
+0005272939 00000 n 
+0005283675 00000 n 
+0005286463 00000 n 
+0005286850 00000 n 
+0005286898 00000 n 
+0005299296 00000 n 
+0005308112 00000 n 
+0005320040 00000 n 
+0005320427 00000 n 
+0005320475 00000 n 
+0005320523 00000 n 
+0005320571 00000 n 
+0005351087 00000 n 
+0005351435 00000 n 
+0005364431 00000 n 
+0005364837 00000 n 
+0005364885 00000 n 
+0005365016 00000 n 
+0005365064 00000 n 
+0005365112 00000 n 
+0005365814 00000 n 
+0005365862 00000 n 
+0005378935 00000 n 
+0005379337 00000 n 
+0005379472 00000 n 
+0005379609 00000 n 
+0005379657 00000 n 
+0005379705 00000 n 
+0005379753 00000 n 
+0005393681 00000 n 
+0005394083 00000 n 
+0005394131 00000 n 
+0005394267 00000 n 
+0005394404 00000 n 
+0005394452 00000 n 
+0005394500 00000 n 
+0005407784 00000 n 
+0005408171 00000 n 
+0005408219 00000 n 
+0005408267 00000 n 
+0005408315 00000 n 
+0005408363 00000 n 
+0005419481 00000 n 
+0005419868 00000 n 
+0005419916 00000 n 
+0005419964 00000 n 
+0005420012 00000 n 
+0005426178 00000 n 
+0005426539 00000 n 
+0005438370 00000 n 
+0005438744 00000 n 
+0005438792 00000 n 
+0005438840 00000 n 
+0005438888 00000 n 
+0005439266 00000 n 
+0005439314 00000 n 
+0005439362 00000 n 
+0005439410 00000 n 
+0005451869 00000 n 
+0005452243 00000 n 
+0005452291 00000 n 
+0005452339 00000 n 
+0005452387 00000 n 
+0005452915 00000 n 
+0005452963 00000 n 
+0005453011 00000 n 
+0005453059 00000 n 
+0005453107 00000 n 
+0005463093 00000 n 
+0005463467 00000 n 
+0005463515 00000 n 
+0005463563 00000 n 
+0005463611 00000 n 
+0005463659 00000 n 
+0005463707 00000 n 
+0005463755 00000 n 
+0005463803 00000 n 
+0005463851 00000 n 
+0005476374 00000 n 
+0005476767 00000 n 
+0005476815 00000 n 
+0005476863 00000 n 
+0005476911 00000 n 
+0005477052 00000 n 
+0005487245 00000 n 
+0005487593 00000 n 
+0005487641 00000 n 
+0005487689 00000 n 
+0005487737 00000 n 
+0005487785 00000 n 
+0005487833 00000 n 
+0005488752 00000 n 
+0005489087 00000 n 
+0005496338 00000 n 
+0005496725 00000 n 
+0005496773 00000 n 
+0005518318 00000 n 
+0005519248 00000 n 
+0005532569 00000 n 
+0005532943 00000 n 
+0005534410 00000 n 
+0005534758 00000 n 
+0005539361 00000 n 
+0005539709 00000 n 
+0005539757 00000 n 
+0005540364 00000 n 
+0005545159 00000 n 
+0005545507 00000 n 
+0005545555 00000 n 
+0005551867 00000 n 
+0005552228 00000 n 
+0005552276 00000 n 
+0005567689 00000 n 
+0005568063 00000 n 
+0005568111 00000 n 
+0005568159 00000 n 
+0005568207 00000 n 
+0005572895 00000 n 
+0005573262 00000 n 
+0005573310 00000 n 
+0005573447 00000 n 
+0005585900 00000 n 
+0005586343 00000 n 
+0005586391 00000 n 
+0005586587 00000 n 
+0005586782 00000 n 
+0005586976 00000 n 
+0005587171 00000 n 
+0005587366 00000 n 
+0005587561 00000 n 
+0005587753 00000 n 
+0005587943 00000 n 
+0005589497 00000 n 
+0005589864 00000 n 
+0005590059 00000 n 
+0005592591 00000 n 
+0005592967 00000 n 
+0005593015 00000 n 
+0005593203 00000 n 
+0005593332 00000 n 
+0005630421 00000 n 
+0005630795 00000 n 
+0005630843 00000 n 
+0005674589 00000 n 
+0005674937 00000 n 
+0005676681 00000 n 
+0005677057 00000 n 
+0005677105 00000 n 
+0005677295 00000 n 
+0005677419 00000 n 
+0005689971 00000 n 
+0005690404 00000 n 
+0005690452 00000 n 
+0005690684 00000 n 
+0005690914 00000 n 
+0005690962 00000 n 
+0005691010 00000 n 
+0005691149 00000 n 
+0005691272 00000 n 
+0005691320 00000 n 
+0005722112 00000 n 
+0005722501 00000 n 
+0005748102 00000 n 
+0005748491 00000 n 
+0005760961 00000 n 
+0005761350 00000 n 
+0005774570 00000 n 
+0005774959 00000 n 
+0005809652 00000 n 
+0005810028 00000 n 
+0005810076 00000 n 
+0005856827 00000 n 
+0005857175 00000 n 
+0005908609 00000 n 
+0005908957 00000 n 
+0005987343 00000 n 
+0005987704 00000 n 
+0005987753 00000 n 
+0006106033 00000 n 
+0006106381 00000 n 
+0006180851 00000 n 
+0006181199 00000 n 
+0006182049 00000 n 
+0006182416 00000 n 
+0006182464 00000 n 
+0006182586 00000 n 
+0006183980 00000 n 
+0006184356 00000 n 
+0006184404 00000 n 
+0006184601 00000 n 
+0006184797 00000 n 
+0006200942 00000 n 
+0006201380 00000 n 
+0006201428 00000 n 
+0006201597 00000 n 
+0006201771 00000 n 
+0006201947 00000 n 
+0006202155 00000 n 
+0006202361 00000 n 
+0006202544 00000 n 
+0006247160 00000 n 
+0006247508 00000 n 
+0006285521 00000 n 
+0006285869 00000 n 
+0006294303 00000 n 
+0006294664 00000 n 
+0006294712 00000 n 
+0006294760 00000 n 
+0006294808 00000 n 
+0006294856 00000 n 
+0006299362 00000 n 
+0006299710 00000 n 
+0006306582 00000 n 
+0006306956 00000 n 
+0006307004 00000 n 
+0006307052 00000 n 
+0006307100 00000 n 
+0006314598 00000 n 
+0006314946 00000 n 
+0006319480 00000 n 
+0006319841 00000 n 
+0006322938 00000 n 
+0006323332 00000 n 
+0006323380 00000 n 
+0006323552 00000 n 
+0006323690 00000 n 
+0006323827 00000 n 
+0006323963 00000 n 
+0006333486 00000 n 
+0006333874 00000 n 
+0006333922 00000 n 
+0006333970 00000 n 
+0006334018 00000 n 
+0006351745 00000 n 
+0006352132 00000 n 
+0006352181 00000 n 
+0006352230 00000 n 
+0006362131 00000 n 
+0006362505 00000 n 
+0006362553 00000 n 
+0006362602 00000 n 
+0006363272 00000 n 
+0006390699 00000 n 
+0006391086 00000 n 
+0006391134 00000 n 
+0006391183 00000 n 
+0006401125 00000 n 
+0006401500 00000 n 
+0006407013 00000 n 
+0006407361 00000 n 
+0006411326 00000 n 
+0006411693 00000 n 
+0006411741 00000 n 
+0006411910 00000 n 
+0006419822 00000 n 
+0006420196 00000 n 
+0006420244 00000 n 
+0006462078 00000 n 
+0006462426 00000 n 
+0006464149 00000 n 
+0006464497 00000 n 
+0006469833 00000 n 
+0006470226 00000 n 
+0006470274 00000 n 
+0006470453 00000 n 
+0006477382 00000 n 
+0006477743 00000 n 
+0006482205 00000 n 
+0006482566 00000 n 
+0006482614 00000 n 
+0006492173 00000 n 
+0006492534 00000 n 
+0006501274 00000 n 
+0006501635 00000 n 
+0006510108 00000 n 
+0006510469 00000 n 
+0006520412 00000 n 
+0006520801 00000 n 
+0006520849 00000 n 
+0006521109 00000 n 
+0006521303 00000 n 
+0006521351 00000 n 
+0006521399 00000 n 
+0006530657 00000 n 
+0006531018 00000 n 
+0006531066 00000 n 
+0006543774 00000 n 
+0006544135 00000 n 
+0006544183 00000 n 
+0006544231 00000 n 
+0006544279 00000 n 
+0006555020 00000 n 
+0006555381 00000 n 
+0006559235 00000 n 
+0006559583 00000 n 
+0006569551 00000 n 
+0006569899 00000 n 
+0006582988 00000 n 
+0006583336 00000 n 
+0006590238 00000 n 
+0006590667 00000 n 
+0006590715 00000 n 
+0006590926 00000 n 
+0006591120 00000 n 
+0006591327 00000 n 
+0006591529 00000 n 
+0006591726 00000 n 
+0006604285 00000 n 
+0006604710 00000 n 
+0006604758 00000 n 
+0006604980 00000 n 
+0006605028 00000 n 
+0006605076 00000 n 
+0006605298 00000 n 
+0006605533 00000 n 
+0006605770 00000 n 
+0006605897 00000 n 
+0006606130 00000 n 
+0006618820 00000 n 
+0006619263 00000 n 
+0006619311 00000 n 
+0006619359 00000 n 
+0006619772 00000 n 
+0006620184 00000 n 
+0006620232 00000 n 
+0006620429 00000 n 
+0006620477 00000 n 
+0006620715 00000 n 
+0006620953 00000 n 
+0006621190 00000 n 
+0006621422 00000 n 
+0006621542 00000 n 
+0006629634 00000 n 
+0006630090 00000 n 
+0006630138 00000 n 
+0006630264 00000 n 
+0006630388 00000 n 
+0006630716 00000 n 
+0006630940 00000 n 
+0006631165 00000 n 
+0006631368 00000 n 
+0006631562 00000 n 
+0006631683 00000 n 
+0006643913 00000 n 
+0006644300 00000 n 
+0006644348 00000 n 
+0006644396 00000 n 
+0006659065 00000 n 
+0006659465 00000 n 
+0006659513 00000 n 
+0006659561 00000 n 
+0006659610 00000 n 
+0006668489 00000 n 
+0006668882 00000 n 
+0006669075 00000 n 
+0006669123 00000 n 
+0006717624 00000 n 
+0006717998 00000 n 
+0006718046 00000 n 
+0006747412 00000 n 
+0006747773 00000 n 
+0006747821 00000 n 
+0006747869 00000 n 
+0006747917 00000 n 
+0006770620 00000 n 
+0006771013 00000 n 
+0006771061 00000 n 
+0006771444 00000 n 
+0006771493 00000 n 
+0006771730 00000 n 
+0006809911 00000 n 
+0006810272 00000 n 
+0006843263 00000 n 
+0006843624 00000 n 
+0006843672 00000 n 
+0006879023 00000 n 
+0006879384 00000 n 
+0006906345 00000 n 
+0006906693 00000 n 
+0006944605 00000 n 
+0006944953 00000 n 
+0006955896 00000 n 
+0006956276 00000 n 
+0006956324 00000 n 
+0006956859 00000 n 
+0006957000 00000 n 
+0006995965 00000 n 
+0006996313 00000 n 
+0007012223 00000 n 
+0007012697 00000 n 
+0007012745 00000 n 
+0007012998 00000 n 
+0007013181 00000 n 
+0007013364 00000 n 
+0007013547 00000 n 
+0007013730 00000 n 
+0007013913 00000 n 
+0007014096 00000 n 
+0007014279 00000 n 
+0007014462 00000 n 
+0007014645 00000 n 
+0007015077 00000 n 
+0007015425 00000 n 
+0007015473 00000 n 
+0007017744 00000 n 
+0007018105 00000 n 
+0007018153 00000 n 
+0007018201 00000 n 
+0007018249 00000 n 
+0007018663 00000 n 
+0007018711 00000 n 
+0007018759 00000 n 
+0007028480 00000 n 
+0007028828 00000 n 
+0007028876 00000 n 
+0007028924 00000 n 
+0007028972 00000 n 
+0007029020 00000 n 
+0007037147 00000 n 
+0007037590 00000 n 
+0007037638 00000 n 
+0007037772 00000 n 
+0007037820 00000 n 
+0007038006 00000 n 
+0007038210 00000 n 
+0007038413 00000 n 
+0007038589 00000 n 
+0007038829 00000 n 
+0007039036 00000 n 
+0007039253 00000 n 
+0007052671 00000 n 
+0007053149 00000 n 
+0007053197 00000 n 
+0007053245 00000 n 
+0007053293 00000 n 
+0007053497 00000 n 
+0007053698 00000 n 
+0007053897 00000 n 
+0007054089 00000 n 
+0007054280 00000 n 
+0007054532 00000 n 
+0007054784 00000 n 
+0007054915 00000 n 
+0007055041 00000 n 
+0007068629 00000 n 
+0007069049 00000 n 
+0007069097 00000 n 
+0007069238 00000 n 
+0007069286 00000 n 
+0007069334 00000 n 
+0007069667 00000 n 
+0007069715 00000 n 
+0007069861 00000 n 
+0007069909 00000 n 
+0007070044 00000 n 
+0007070092 00000 n 
+0007070284 00000 n 
+0007083123 00000 n 
+0007083593 00000 n 
+0007083824 00000 n 
+0007083872 00000 n 
+0007084027 00000 n 
+0007084075 00000 n 
+0007084244 00000 n 
+0007084293 00000 n 
+0007084442 00000 n 
+0007084491 00000 n 
+0007084646 00000 n 
+0007084695 00000 n 
+0007084847 00000 n 
+0007084997 00000 n 
+0007085143 00000 n 
+0007085338 00000 n 
+0007085532 00000 n 
+0007085581 00000 n 
+0007085776 00000 n 
+0007109719 00000 n 
+0007110067 00000 n 
+0007111226 00000 n 
+0007111561 00000 n 
+0007112737 00000 n 
+0007113104 00000 n 
+0007113152 00000 n 
+0007113277 00000 n 
+0007124460 00000 n 
+0007124921 00000 n 
+0007124969 00000 n 
+0007125017 00000 n 
+0007125144 00000 n 
+0007125192 00000 n 
+0007125312 00000 n 
+0007125451 00000 n 
+0007125499 00000 n 
+0007125723 00000 n 
+0007125858 00000 n 
+0007125906 00000 n 
+0007126089 00000 n 
+0007126283 00000 n 
+0007126478 00000 n 
+0007126601 00000 n 
+0007126804 00000 n 
+0007126852 00000 n 
+0007142913 00000 n 
+0007143315 00000 n 
+0007143363 00000 n 
+0007143496 00000 n 
+0007143721 00000 n 
+0007143769 00000 n 
+0007160816 00000 n 
+0007161241 00000 n 
+0007161289 00000 n 
+0007161512 00000 n 
+0007161633 00000 n 
+0007161681 00000 n 
+0007161808 00000 n 
+0007162031 00000 n 
+0007162079 00000 n 
+0007162204 00000 n 
+0007162329 00000 n 
+0007162377 00000 n 
+0007163742 00000 n 
+0007164105 00000 n 
+0007164228 00000 n 
 0007164353 00000 n 
-0007164476 00000 n 
-0007164601 00000 n 
-0007184600 00000 n 
-0007184961 00000 n 
-0007185009 00000 n 
-0007185057 00000 n 
-0007220275 00000 n 
-0007220682 00000 n 
-0007220730 00000 n 
-0007220778 00000 n 
-0007220908 00000 n 
-0007220956 00000 n 
-0007221090 00000 n 
-0007221240 00000 n 
-0007221373 00000 n 
-0007232773 00000 n 
-0007233184 00000 n 
-0007233232 00000 n 
-0007233457 00000 n 
-0007233505 00000 n 
-0007233632 00000 n 
-0007233680 00000 n 
-0007234142 00000 n 
-0007234314 00000 n 
-0007234362 00000 n 
-0007234597 00000 n 
-0007234645 00000 n 
-0007237615 00000 n 
-0007238000 00000 n 
-0007238253 00000 n 
-0007238385 00000 n 
-0007238521 00000 n 
-0007250098 00000 n 
-0007250500 00000 n 
-0007250548 00000 n 
-0007251098 00000 n 
-0007251281 00000 n 
-0007251329 00000 n 
-0007251543 00000 n 
-0007251591 00000 n 
-0007251639 00000 n 
-0007251687 00000 n 
-0007276360 00000 n 
-0007276807 00000 n 
-0007276855 00000 n 
-0007276990 00000 n 
-0007277038 00000 n 
-0007277266 00000 n 
-0007277314 00000 n 
-0007277529 00000 n 
-0007277664 00000 n 
-0007277712 00000 n 
-0007277932 00000 n 
-0007278165 00000 n 
-0007278393 00000 n 
-0007292144 00000 n 
-0007292622 00000 n 
-0007292670 00000 n 
-0007293315 00000 n 
-0007293446 00000 n 
-0007293581 00000 n 
-0007293629 00000 n 
-0007293814 00000 n 
-0007294009 00000 n 
-0007294240 00000 n 
-0007294435 00000 n 
-0007294601 00000 n 
-0007294765 00000 n 
-0007294892 00000 n 
-0007294940 00000 n 
-0007294988 00000 n 
-0007295036 00000 n 
-0007295084 00000 n 
-0007295132 00000 n 
-0007306009 00000 n 
-0007306442 00000 n 
-0007306490 00000 n 
-0007306538 00000 n 
-0007306768 00000 n 
-0007306816 00000 n 
-0007307009 00000 n 
-0007307204 00000 n 
-0007307400 00000 n 
-0007314731 00000 n 
-0007315111 00000 n 
-0007315241 00000 n 
-0007319597 00000 n 
-0007320004 00000 n 
-0007320052 00000 n 
-0007320100 00000 n 
-0007320225 00000 n 
-0007320351 00000 n 
-0007320620 00000 n 
-0007320668 00000 n 
-0007320931 00000 n 
-0007335666 00000 n 
-0007336158 00000 n 
-0007336206 00000 n 
-0007336331 00000 n 
-0007336379 00000 n 
-0007336569 00000 n 
-0007336760 00000 n 
-0007336808 00000 n 
-0007337002 00000 n 
-0007337200 00000 n 
-0007337382 00000 n 
-0007337564 00000 n 
-0007337756 00000 n 
-0007338025 00000 n 
-0007338294 00000 n 
+0007184352 00000 n 
+0007184713 00000 n 
+0007184761 00000 n 
+0007184809 00000 n 
+0007220027 00000 n 
+0007220434 00000 n 
+0007220482 00000 n 
+0007220530 00000 n 
+0007220660 00000 n 
+0007220708 00000 n 
+0007220842 00000 n 
+0007220992 00000 n 
+0007221125 00000 n 
+0007232525 00000 n 
+0007232936 00000 n 
+0007232984 00000 n 
+0007233209 00000 n 
+0007233257 00000 n 
+0007233384 00000 n 
+0007233432 00000 n 
+0007233894 00000 n 
+0007234066 00000 n 
+0007234114 00000 n 
+0007234349 00000 n 
+0007234397 00000 n 
+0007237367 00000 n 
+0007237752 00000 n 
+0007238005 00000 n 
+0007238137 00000 n 
+0007238273 00000 n 
+0007249850 00000 n 
+0007250252 00000 n 
+0007250300 00000 n 
+0007250850 00000 n 
+0007251033 00000 n 
+0007251081 00000 n 
+0007251295 00000 n 
+0007251343 00000 n 
+0007251391 00000 n 
+0007251439 00000 n 
+0007276112 00000 n 
+0007276559 00000 n 
+0007276607 00000 n 
+0007276742 00000 n 
+0007276790 00000 n 
+0007277018 00000 n 
+0007277066 00000 n 
+0007277281 00000 n 
+0007277416 00000 n 
+0007277464 00000 n 
+0007277684 00000 n 
+0007277917 00000 n 
+0007278145 00000 n 
+0007291896 00000 n 
+0007292374 00000 n 
+0007292422 00000 n 
+0007293067 00000 n 
+0007293198 00000 n 
+0007293333 00000 n 
+0007293381 00000 n 
+0007293566 00000 n 
+0007293761 00000 n 
+0007293992 00000 n 
+0007294187 00000 n 
+0007294353 00000 n 
+0007294517 00000 n 
+0007294644 00000 n 
+0007294692 00000 n 
+0007294740 00000 n 
+0007294788 00000 n 
+0007294836 00000 n 
+0007294884 00000 n 
+0007305761 00000 n 
+0007306194 00000 n 
+0007306242 00000 n 
+0007306290 00000 n 
+0007306520 00000 n 
+0007306568 00000 n 
+0007306761 00000 n 
+0007306956 00000 n 
+0007307152 00000 n 
+0007314483 00000 n 
+0007314863 00000 n 
+0007314993 00000 n 
+0007319349 00000 n 
+0007319756 00000 n 
+0007319804 00000 n 
+0007319852 00000 n 
+0007319977 00000 n 
+0007320103 00000 n 
+0007320372 00000 n 
+0007320420 00000 n 
+0007320683 00000 n 
+0007335418 00000 n 
+0007335910 00000 n 
+0007335958 00000 n 
+0007336083 00000 n 
+0007336131 00000 n 
+0007336321 00000 n 
+0007336512 00000 n 
+0007336560 00000 n 
+0007336754 00000 n 
+0007336952 00000 n 
+0007337134 00000 n 
+0007337316 00000 n 
+0007337508 00000 n 
+0007337777 00000 n 
+0007338046 00000 n 
+0007338296 00000 n 
 0007338544 00000 n 
-0007338792 00000 n 
-0007346975 00000 n 
-0007347421 00000 n 
-0007347614 00000 n 
-0007347808 00000 n 
-0007348003 00000 n 
-0007348198 00000 n 
-0007348247 00000 n 
-0007350455 00000 n 
-0007350803 00000 n 
-0007350851 00000 n 
-0007356036 00000 n 
-0007356412 00000 n 
-0007356460 00000 n 
-0007356587 00000 n 
-0007356711 00000 n 
-0007357655 00000 n 
-0007358022 00000 n 
-0007358070 00000 n 
-0007358198 00000 n 
-0007358759 00000 n 
-0007359107 00000 n 
-0007359155 00000 n 
-0007366415 00000 n 
-0007366853 00000 n 
-0007366901 00000 n 
-0007367072 00000 n 
-0007367191 00000 n 
-0007367342 00000 n 
-0007367492 00000 n 
-0007367748 00000 n 
-0007367872 00000 n 
-0007377469 00000 n 
-0007377843 00000 n 
-0007377891 00000 n 
-0007377939 00000 n 
-0007377987 00000 n 
-0007378035 00000 n 
-0007378083 00000 n 
-0007378754 00000 n 
-0007378802 00000 n 
-0007402489 00000 n 
-0007402876 00000 n 
-0007402924 00000 n 
-0007497988 00000 n 
-0007498349 00000 n 
-0007528295 00000 n 
-0007528684 00000 n 
-0007528943 00000 n 
-0007529065 00000 n 
-0007535513 00000 n 
-0007535925 00000 n 
-0007535973 00000 n 
-0007536021 00000 n 
-0007536188 00000 n 
-0007536236 00000 n 
-0007536422 00000 n 
-0007536568 00000 n 
-0007536755 00000 n 
-0007536803 00000 n 
-0007536974 00000 n 
-0007537022 00000 n 
-0007537070 00000 n 
-0007537255 00000 n 
-0007542501 00000 n 
-0007542881 00000 n 
-0007542929 00000 n 
-0007542977 00000 n 
-0007543025 00000 n 
-0007543073 00000 n 
-0007543569 00000 n 
-0007543697 00000 n 
-0007543745 00000 n 
-0007594116 00000 n 
-0007594491 00000 n 
-0007594539 00000 n 
-0007594587 00000 n 
-0007594635 00000 n 
-0007606341 00000 n 
-0007606734 00000 n 
-0007606920 00000 n 
-0007606968 00000 n 
-0007636584 00000 n 
-0007636945 00000 n 
-0007636993 00000 n 
-0007717431 00000 n 
-0007717779 00000 n 
-0007784236 00000 n 
-0007784584 00000 n 
-0007836228 00000 n 
-0007836576 00000 n 
-0007890553 00000 n 
-0007890933 00000 n 
-0007890981 00000 n 
-0007891143 00000 n 
-0007891191 00000 n 
-0007905541 00000 n 
-0007905979 00000 n 
-0007906027 00000 n 
-0007906163 00000 n 
-0007906211 00000 n 
-0007906349 00000 n 
-0007906397 00000 n 
-0007906540 00000 n 
-0007906780 00000 n 
-0007906828 00000 n 
-0007906970 00000 n 
-0007907254 00000 n 
-0007907302 00000 n 
-0007921314 00000 n 
-0007921739 00000 n 
-0007921787 00000 n 
-0007921920 00000 n 
-0007922055 00000 n 
-0007922316 00000 n 
-0007922364 00000 n 
-0007922562 00000 n 
-0007922760 00000 n 
-0007922953 00000 n 
-0007966748 00000 n 
-0007967155 00000 n 
-0007967203 00000 n 
-0007967347 00000 n 
-0007967395 00000 n 
-0007967628 00000 n 
-0007967903 00000 n 
-0007968176 00000 n 
-0007978655 00000 n 
-0007979066 00000 n 
-0007979114 00000 n 
-0007979351 00000 n 
-0007979574 00000 n 
-0007979803 00000 n 
-0007993296 00000 n 
-0007993676 00000 n 
-0007993724 00000 n 
-0007993772 00000 n 
-0007993909 00000 n 
-0007998290 00000 n 
-0007998711 00000 n 
-0007998759 00000 n 
-0007999458 00000 n 
-0007999651 00000 n 
-0007999842 00000 n 
-0008000035 00000 n 
-0008000229 00000 n 
-0008000420 00000 n 
-0008000612 00000 n 
-0008000808 00000 n 
-0008020131 00000 n 
-0008020520 00000 n 
-0008020568 00000 n 
-0008020694 00000 n 
-0008020742 00000 n 
-0008020981 00000 n 
-0008021029 00000 n 
-0008036201 00000 n 
-0008036594 00000 n 
-0008036825 00000 n 
-0008036873 00000 n 
-0008036921 00000 n 
-0008036969 00000 n 
-0008037802 00000 n 
-0008038150 00000 n 
-0008041240 00000 n 
-0008041629 00000 n 
-0008041677 00000 n 
-0008041725 00000 n 
-0008041857 00000 n 
-0008041905 00000 n 
-0008041953 00000 n 
-0008042374 00000 n 
-0008042505 00000 n 
-0008073214 00000 n 
-0008073607 00000 n 
-0008073655 00000 n 
-0008073789 00000 n 
-0008073837 00000 n 
-0008073885 00000 n 
-0008073933 00000 n 
-0008073981 00000 n 
-0008084556 00000 n 
-0008084904 00000 n 
-0008105358 00000 n 
-0008105769 00000 n 
-0008105897 00000 n 
-0008105946 00000 n 
-0008105995 00000 n 
-0008106190 00000 n 
-0008106384 00000 n 
-0008106433 00000 n 
-0008128141 00000 n 
-0008128502 00000 n 
-0008128550 00000 n 
-0008128598 00000 n 
-0008129387 00000 n 
-0008129435 00000 n 
-0008129483 00000 n 
-0008129531 00000 n 
-0008174304 00000 n 
-0008174665 00000 n 
-0008185251 00000 n 
-0008185649 00000 n 
-0008185789 00000 n 
-0008185837 00000 n 
-0008185885 00000 n 
-0008186077 00000 n 
-0008186269 00000 n 
-0008186317 00000 n 
-0008186365 00000 n 
-0008188037 00000 n 
-0008188398 00000 n 
-0008188446 00000 n 
-0008194595 00000 n 
-0008194980 00000 n 
-0008195028 00000 n 
-0008195164 00000 n 
-0008195212 00000 n 
-0008195260 00000 n 
-0008195308 00000 n 
-0008195501 00000 n 
-0008195692 00000 n 
-0008195740 00000 n 
-0008203561 00000 n 
-0008203941 00000 n 
-0008204066 00000 n 
-0008204114 00000 n 
-0008210234 00000 n 
-0008210636 00000 n 
-0008210684 00000 n 
-0008211388 00000 n 
-0008211436 00000 n 
-0008211484 00000 n 
-0008211532 00000 n 
-0008211734 00000 n 
-0008211877 00000 n 
-0008228940 00000 n 
-0008229329 00000 n 
-0008229377 00000 n 
-0008229425 00000 n 
-0008229473 00000 n 
-0008229644 00000 n 
-0008229692 00000 n 
-0008229875 00000 n 
-0008232997 00000 n 
-0008233364 00000 n 
-0008233412 00000 n 
-0008233460 00000 n 
-0008233594 00000 n 
-0008246684 00000 n 
-0008247077 00000 n 
-0008247125 00000 n 
-0008247298 00000 n 
-0008259699 00000 n 
-0008260114 00000 n 
-0008260304 00000 n 
-0008260545 00000 n 
-0008262521 00000 n 
-0008262869 00000 n 
-0008285243 00000 n 
-0008285632 00000 n 
-0008285680 00000 n 
-0008285728 00000 n 
-0008285920 00000 n 
-0008286109 00000 n 
-0008287053 00000 n 
-0008287420 00000 n 
-0008287468 00000 n 
-0008287596 00000 n 
-0008301280 00000 n 
-0008301654 00000 n 
-0008301702 00000 n 
-0008301750 00000 n 
-0008309629 00000 n 
-0008310044 00000 n 
-0008310092 00000 n 
-0008310140 00000 n 
-0008310335 00000 n 
-0008310552 00000 n 
-0008334694 00000 n 
-0008335083 00000 n 
-0008335131 00000 n 
-0008335179 00000 n 
-0008335373 00000 n 
-0008335566 00000 n 
-0008335986 00000 n 
-0008336334 00000 n 
-0008336382 00000 n 
-0008338405 00000 n 
-0008338790 00000 n 
+0007346727 00000 n 
+0007347173 00000 n 
+0007347366 00000 n 
+0007347560 00000 n 
+0007347755 00000 n 
+0007347950 00000 n 
+0007347999 00000 n 
+0007350207 00000 n 
+0007350555 00000 n 
+0007350603 00000 n 
+0007355788 00000 n 
+0007356164 00000 n 
+0007356212 00000 n 
+0007356339 00000 n 
+0007356463 00000 n 
+0007357407 00000 n 
+0007357774 00000 n 
+0007357822 00000 n 
+0007357950 00000 n 
+0007358511 00000 n 
+0007358859 00000 n 
+0007358907 00000 n 
+0007366167 00000 n 
+0007366605 00000 n 
+0007366653 00000 n 
+0007366824 00000 n 
+0007366943 00000 n 
+0007367094 00000 n 
+0007367244 00000 n 
+0007367500 00000 n 
+0007367624 00000 n 
+0007377221 00000 n 
+0007377595 00000 n 
+0007377643 00000 n 
+0007377691 00000 n 
+0007377739 00000 n 
+0007377787 00000 n 
+0007377835 00000 n 
+0007378506 00000 n 
+0007378554 00000 n 
+0007402241 00000 n 
+0007402628 00000 n 
+0007402676 00000 n 
+0007497740 00000 n 
+0007498101 00000 n 
+0007528047 00000 n 
+0007528436 00000 n 
+0007528695 00000 n 
+0007528817 00000 n 
+0007535265 00000 n 
+0007535677 00000 n 
+0007535725 00000 n 
+0007535773 00000 n 
+0007535940 00000 n 
+0007535988 00000 n 
+0007536174 00000 n 
+0007536320 00000 n 
+0007536507 00000 n 
+0007536555 00000 n 
+0007536726 00000 n 
+0007536774 00000 n 
+0007536822 00000 n 
+0007537007 00000 n 
+0007542253 00000 n 
+0007542633 00000 n 
+0007542681 00000 n 
+0007542729 00000 n 
+0007542777 00000 n 
+0007542825 00000 n 
+0007543321 00000 n 
+0007543449 00000 n 
+0007543497 00000 n 
+0007593868 00000 n 
+0007594243 00000 n 
+0007594291 00000 n 
+0007594339 00000 n 
+0007594387 00000 n 
+0007606093 00000 n 
+0007606486 00000 n 
+0007606672 00000 n 
+0007606720 00000 n 
+0007636336 00000 n 
+0007636697 00000 n 
+0007636745 00000 n 
+0007717183 00000 n 
+0007717531 00000 n 
+0007783988 00000 n 
+0007784336 00000 n 
+0007835980 00000 n 
+0007836328 00000 n 
+0007890305 00000 n 
+0007890685 00000 n 
+0007890733 00000 n 
+0007890895 00000 n 
+0007890943 00000 n 
+0007905293 00000 n 
+0007905731 00000 n 
+0007905779 00000 n 
+0007905915 00000 n 
+0007905963 00000 n 
+0007906101 00000 n 
+0007906149 00000 n 
+0007906292 00000 n 
+0007906532 00000 n 
+0007906580 00000 n 
+0007906722 00000 n 
+0007907006 00000 n 
+0007907054 00000 n 
+0007921066 00000 n 
+0007921491 00000 n 
+0007921539 00000 n 
+0007921672 00000 n 
+0007921807 00000 n 
+0007922068 00000 n 
+0007922116 00000 n 
+0007922314 00000 n 
+0007922512 00000 n 
+0007922705 00000 n 
+0007966500 00000 n 
+0007966907 00000 n 
+0007966955 00000 n 
+0007967099 00000 n 
+0007967147 00000 n 
+0007967380 00000 n 
+0007967655 00000 n 
+0007967928 00000 n 
+0007978407 00000 n 
+0007978818 00000 n 
+0007978866 00000 n 
+0007979103 00000 n 
+0007979326 00000 n 
+0007979555 00000 n 
+0007993048 00000 n 
+0007993428 00000 n 
+0007993476 00000 n 
+0007993524 00000 n 
+0007993661 00000 n 
+0007998042 00000 n 
+0007998463 00000 n 
+0007998511 00000 n 
+0007999210 00000 n 
+0007999403 00000 n 
+0007999594 00000 n 
+0007999787 00000 n 
+0007999981 00000 n 
+0008000172 00000 n 
+0008000364 00000 n 
+0008000560 00000 n 
+0008019883 00000 n 
+0008020272 00000 n 
+0008020320 00000 n 
+0008020446 00000 n 
+0008020494 00000 n 
+0008020733 00000 n 
+0008020781 00000 n 
+0008035953 00000 n 
+0008036346 00000 n 
+0008036577 00000 n 
+0008036625 00000 n 
+0008036673 00000 n 
+0008036721 00000 n 
+0008037554 00000 n 
+0008037902 00000 n 
+0008040992 00000 n 
+0008041381 00000 n 
+0008041429 00000 n 
+0008041477 00000 n 
+0008041609 00000 n 
+0008041657 00000 n 
+0008041705 00000 n 
+0008042126 00000 n 
+0008042257 00000 n 
+0008072966 00000 n 
+0008073359 00000 n 
+0008073407 00000 n 
+0008073541 00000 n 
+0008073589 00000 n 
+0008073637 00000 n 
+0008073685 00000 n 
+0008073733 00000 n 
+0008084308 00000 n 
+0008084656 00000 n 
+0008105110 00000 n 
+0008105521 00000 n 
+0008105649 00000 n 
+0008105698 00000 n 
+0008105747 00000 n 
+0008105942 00000 n 
+0008106136 00000 n 
+0008106185 00000 n 
+0008127893 00000 n 
+0008128254 00000 n 
+0008128302 00000 n 
+0008128350 00000 n 
+0008129139 00000 n 
+0008129187 00000 n 
+0008129235 00000 n 
+0008129283 00000 n 
+0008174056 00000 n 
+0008174417 00000 n 
+0008185003 00000 n 
+0008185401 00000 n 
+0008185541 00000 n 
+0008185589 00000 n 
+0008185637 00000 n 
+0008185829 00000 n 
+0008186021 00000 n 
+0008186069 00000 n 
+0008186117 00000 n 
+0008187789 00000 n 
+0008188150 00000 n 
+0008188198 00000 n 
+0008194347 00000 n 
+0008194732 00000 n 
+0008194780 00000 n 
+0008194916 00000 n 
+0008194964 00000 n 
+0008195012 00000 n 
+0008195060 00000 n 
+0008195253 00000 n 
+0008195444 00000 n 
+0008195492 00000 n 
+0008203313 00000 n 
+0008203693 00000 n 
+0008203818 00000 n 
+0008203866 00000 n 
+0008209986 00000 n 
+0008210388 00000 n 
+0008210436 00000 n 
+0008211140 00000 n 
+0008211188 00000 n 
+0008211236 00000 n 
+0008211284 00000 n 
+0008211486 00000 n 
+0008211629 00000 n 
+0008228692 00000 n 
+0008229081 00000 n 
+0008229129 00000 n 
+0008229177 00000 n 
+0008229225 00000 n 
+0008229396 00000 n 
+0008229444 00000 n 
+0008229627 00000 n 
+0008232749 00000 n 
+0008233116 00000 n 
+0008233164 00000 n 
+0008233212 00000 n 
+0008233346 00000 n 
+0008246436 00000 n 
+0008246829 00000 n 
+0008246877 00000 n 
+0008247050 00000 n 
+0008259451 00000 n 
+0008259866 00000 n 
+0008260056 00000 n 
+0008260297 00000 n 
+0008262273 00000 n 
+0008262621 00000 n 
+0008284995 00000 n 
+0008285384 00000 n 
+0008285432 00000 n 
+0008285480 00000 n 
+0008285672 00000 n 
+0008285861 00000 n 
+0008286805 00000 n 
+0008287172 00000 n 
+0008287220 00000 n 
+0008287348 00000 n 
+0008301032 00000 n 
+0008301406 00000 n 
+0008301454 00000 n 
+0008301502 00000 n 
+0008309381 00000 n 
+0008309796 00000 n 
+0008309844 00000 n 
+0008309892 00000 n 
+0008310087 00000 n 
+0008310304 00000 n 
+0008334446 00000 n 
+0008334835 00000 n 
+0008334883 00000 n 
+0008334931 00000 n 
+0008335125 00000 n 
+0008335318 00000 n 
+0008335738 00000 n 
+0008336086 00000 n 
+0008336134 00000 n 
+0008338157 00000 n 
+0008338542 00000 n 
+0008338590 00000 n 
+0008338715 00000 n 
 0008338838 00000 n 
-0008338963 00000 n 
-0008339086 00000 n 
-0008339209 00000 n 
-0008340003 00000 n 
-0008340370 00000 n 
-0008340418 00000 n 
-0008340551 00000 n 
-0008349676 00000 n 
-0008350037 00000 n 
-0008350085 00000 n 
-0008350133 00000 n 
-0008350181 00000 n 
-0008350229 00000 n 
-0008350278 00000 n 
-0008350327 00000 n 
-0008350376 00000 n 
-0008363149 00000 n 
-0008363510 00000 n 
-0008363558 00000 n 
-0008363605 00000 n 
-0008363653 00000 n 
-0008372354 00000 n 
-0008372734 00000 n 
-0008372782 00000 n 
-0008373214 00000 n 
-0008373262 00000 n 
-0008373480 00000 n 
-0008377070 00000 n 
-0008377486 00000 n 
-0008377534 00000 n 
-0008378019 00000 n 
-0008378206 00000 n 
-0008378254 00000 n 
-0008378463 00000 n 
-0008378669 00000 n 
-0008378820 00000 n 
-0008378968 00000 n 
-0008381183 00000 n 
-0008381568 00000 n 
+0008338961 00000 n 
+0008339755 00000 n 
+0008340122 00000 n 
+0008340170 00000 n 
+0008340303 00000 n 
+0008349428 00000 n 
+0008349789 00000 n 
+0008349837 00000 n 
+0008349885 00000 n 
+0008349933 00000 n 
+0008349981 00000 n 
+0008350030 00000 n 
+0008350079 00000 n 
+0008350128 00000 n 
+0008362901 00000 n 
+0008363262 00000 n 
+0008363310 00000 n 
+0008363357 00000 n 
+0008363405 00000 n 
+0008372106 00000 n 
+0008372486 00000 n 
+0008372534 00000 n 
+0008372966 00000 n 
+0008373014 00000 n 
+0008373232 00000 n 
+0008376822 00000 n 
+0008377238 00000 n 
+0008377286 00000 n 
+0008377771 00000 n 
+0008377958 00000 n 
+0008378006 00000 n 
+0008378215 00000 n 
+0008378421 00000 n 
+0008378572 00000 n 
+0008378720 00000 n 
+0008380935 00000 n 
+0008381320 00000 n 
+0008381368 00000 n 
+0008381491 00000 n 
 0008381616 00000 n 
-0008381739 00000 n 
-0008381864 00000 n 
-0008381994 00000 n 
-0008396049 00000 n 
-0008396469 00000 n 
-0008396517 00000 n 
-0008396634 00000 n 
-0008396751 00000 n 
-0008396875 00000 n 
-0008396996 00000 n 
-0008408378 00000 n 
-0008408765 00000 n 
-0008408813 00000 n 
-0008430428 00000 n 
-0008430789 00000 n 
-0008430837 00000 n 
-0008440424 00000 n 
-0008440785 00000 n 
-0008440833 00000 n 
-0008440881 00000 n 
-0008440929 00000 n 
-0008440977 00000 n 
-0008441025 00000 n 
-0008452926 00000 n 
-0008453300 00000 n 
-0008453348 00000 n 
-0008453396 00000 n 
-0008453444 00000 n 
-0008466796 00000 n 
-0008467170 00000 n 
-0008467219 00000 n 
-0008477499 00000 n 
-0008477892 00000 n 
-0008478042 00000 n 
-0008478090 00000 n 
-0008478138 00000 n 
-0008490620 00000 n 
-0008491022 00000 n 
-0008491070 00000 n 
-0008491200 00000 n 
-0008491248 00000 n 
-0008491700 00000 n 
-0008491824 00000 n 
-0008491872 00000 n 
-0008491920 00000 n 
-0008491968 00000 n 
-0008496739 00000 n 
-0008497145 00000 n 
-0008497194 00000 n 
-0008497327 00000 n 
-0008497376 00000 n 
-0008507014 00000 n 
-0008507388 00000 n 
-0008528257 00000 n 
-0008528663 00000 n 
-0008528889 00000 n 
-0008528938 00000 n 
-0008539510 00000 n 
-0008539918 00000 n 
-0008540102 00000 n 
-0008540150 00000 n 
-0008540198 00000 n 
-0008540331 00000 n 
-0008540378 00000 n 
-0008549277 00000 n 
-0008549638 00000 n 
-0008549686 00000 n 
-0008559531 00000 n 
-0008559942 00000 n 
-0008559990 00000 n 
-0008560038 00000 n 
-0008560168 00000 n 
-0008560216 00000 n 
-0008560342 00000 n 
-0008560391 00000 n 
-0008560926 00000 n 
-0008561059 00000 n 
-0008561108 00000 n 
-0008566730 00000 n 
-0008567091 00000 n 
-0008567139 00000 n 
-0008579212 00000 n 
-0008579615 00000 n 
-0008579663 00000 n 
-0008580124 00000 n 
-0008580347 00000 n 
-0008580395 00000 n 
-0008580622 00000 n 
-0008591654 00000 n 
-0008592052 00000 n 
-0008592100 00000 n 
-0008592282 00000 n 
-0008592474 00000 n 
-0008592522 00000 n 
-0008592761 00000 n 
-0008592809 00000 n 
-0008601234 00000 n 
-0008601595 00000 n 
-0008601643 00000 n 
-0008601691 00000 n 
-0008607711 00000 n 
-0008608118 00000 n 
-0008608166 00000 n 
-0008608813 00000 n 
-0008608861 00000 n 
-0008609129 00000 n 
-0008609256 00000 n 
-0008609304 00000 n 
-0008609555 00000 n 
-0008609750 00000 n 
-0008621732 00000 n 
-0008622138 00000 n 
-0008622186 00000 n 
-0008622234 00000 n 
-0008622354 00000 n 
-0008642197 00000 n 
-0008642584 00000 n 
-0008642633 00000 n 
-0008642682 00000 n 
-0008655365 00000 n 
-0008655802 00000 n 
-0008656017 00000 n 
-0008656065 00000 n 
-0008656219 00000 n 
-0008656507 00000 n 
-0008656556 00000 n 
-0008656605 00000 n 
-0008670163 00000 n 
-0008670556 00000 n 
-0008670605 00000 n 
-0008670735 00000 n 
-0008670784 00000 n 
-0008684128 00000 n 
-0008684521 00000 n 
-0008684640 00000 n 
-0008684688 00000 n 
-0008686687 00000 n 
-0008687035 00000 n 
-0008700324 00000 n 
-0008700779 00000 n 
-0008700827 00000 n 
-0008701058 00000 n 
-0008701106 00000 n 
-0008701341 00000 n 
-0008701574 00000 n 
-0008701821 00000 n 
-0008702067 00000 n 
-0008702116 00000 n 
-0008702165 00000 n 
-0008718577 00000 n 
-0008718979 00000 n 
-0008719157 00000 n 
-0008719206 00000 n 
-0008719255 00000 n 
-0008725556 00000 n 
-0008725904 00000 n 
-0008725952 00000 n 
-0008733673 00000 n 
-0008734021 00000 n 
-0008735206 00000 n 
-0008735554 00000 n 
-0008746331 00000 n 
-0008746729 00000 n 
-0008746777 00000 n 
-0008746825 00000 n 
-0008746992 00000 n 
-0008747118 00000 n 
-0008747248 00000 n 
-0008747296 00000 n 
-0008747344 00000 n 
-0008747392 00000 n 
-0008782500 00000 n 
-0008782861 00000 n 
-0008782909 00000 n 
-0008782957 00000 n 
-0008783005 00000 n 
-0008940146 00000 n 
-0008943766 00000 n 
-0008944461 00000 n 
-0008944836 00000 n 
-0009038986 00000 n 
-0009125307 00000 n 
-0009126327 00000 n 
-0009126703 00000 n 
-0009197220 00000 n 
-0009208155 00000 n 
-0009208544 00000 n 
-0009208592 00000 n 
-0009208785 00000 n 
-0009208833 00000 n 
-0009209027 00000 n 
-0009220226 00000 n 
-0009220606 00000 n 
-0009220743 00000 n 
-0009273215 00000 n 
-0009278879 00000 n 
-0009279267 00000 n 
-0009279317 00000 n 
-0009288568 00000 n 
-0009288974 00000 n 
-0009289108 00000 n 
-0009289157 00000 n 
-0009301719 00000 n 
-0009302121 00000 n 
-0009302317 00000 n 
-0009302512 00000 n 
-0009302561 00000 n 
-0009309228 00000 n 
-0009309635 00000 n 
-0009309683 00000 n 
-0009465770 00000 n 
-0009467791 00000 n 
-0009467841 00000 n 
-0009468472 00000 n 
-0009468695 00000 n 
-0009484055 00000 n 
-0009484448 00000 n 
-0009484497 00000 n 
-0009484694 00000 n 
-0009484743 00000 n 
-0009499249 00000 n 
-0009499642 00000 n 
-0009499690 00000 n 
-0009499738 00000 n 
-0009499870 00000 n 
-0009511994 00000 n 
-0009512368 00000 n 
-0009512416 00000 n 
-0009512464 00000 n 
-0009512512 00000 n 
-0009521982 00000 n 
-0009522330 00000 n 
-0009530762 00000 n 
-0009531123 00000 n 
-0009531171 00000 n 
-0009541819 00000 n 
-0009542167 00000 n 
-0009559138 00000 n 
-0009559512 00000 n 
-0009559560 00000 n 
-0009559608 00000 n 
-0009572653 00000 n 
-0009573082 00000 n 
-0009573130 00000 n 
-0009573250 00000 n 
-0009573380 00000 n 
-0009573517 00000 n 
-0009573565 00000 n 
-0009574083 00000 n 
-0009574210 00000 n 
-0009574339 00000 n 
-0009574388 00000 n 
-0009582274 00000 n 
-0009582622 00000 n 
-0009592203 00000 n 
-0009592577 00000 n 
-0009592625 00000 n 
-0009592674 00000 n 
-0009607277 00000 n 
-0009607651 00000 n 
-0009607699 00000 n 
-0009621684 00000 n 
-0009622064 00000 n 
-0009622111 00000 n 
-0009622304 00000 n 
-0009632964 00000 n 
-0009633338 00000 n 
-0009633387 00000 n 
-0009649480 00000 n 
-0009649860 00000 n 
-0009649907 00000 n 
-0009650100 00000 n 
-0009651557 00000 n 
-0009651905 00000 n 
-0009660284 00000 n 
-0009660669 00000 n 
-0009660717 00000 n 
-0009660921 00000 n 
-0009660969 00000 n 
-0009661017 00000 n 
-0009661065 00000 n 
-0009661113 00000 n 
-0009661826 00000 n 
-0009661874 00000 n 
-0009662076 00000 n 
-0009662124 00000 n 
-0009662249 00000 n 
-0009664008 00000 n 
-0009664384 00000 n 
-0009664432 00000 n 
-0009664554 00000 n 
-0009664672 00000 n 
-0009677156 00000 n 
-0009677530 00000 n 
-0009677578 00000 n 
-0009677626 00000 n 
-0009677674 00000 n 
-0009686923 00000 n 
-0009687297 00000 n 
-0009687345 00000 n 
-0009687393 00000 n 
-0009687441 00000 n 
-0009687489 00000 n 
-0009698222 00000 n 
-0009698646 00000 n 
-0009698694 00000 n 
-0009698840 00000 n 
-0009698888 00000 n 
-0009698937 00000 n 
-0009699069 00000 n 
-0009699200 00000 n 
-0009711196 00000 n 
-0009711544 00000 n 
-0009715840 00000 n 
-0009716269 00000 n 
-0009716317 00000 n 
-0009716443 00000 n 
-0009716569 00000 n 
-0009716775 00000 n 
-0009716904 00000 n 
-0009717031 00000 n 
-0009729584 00000 n 
-0009730041 00000 n 
-0009730089 00000 n 
-0009730137 00000 n 
+0008381746 00000 n 
+0008395801 00000 n 
+0008396221 00000 n 
+0008396269 00000 n 
+0008396386 00000 n 
+0008396503 00000 n 
+0008396627 00000 n 
+0008396748 00000 n 
+0008408130 00000 n 
+0008408517 00000 n 
+0008408565 00000 n 
+0008430180 00000 n 
+0008430541 00000 n 
+0008430589 00000 n 
+0008440176 00000 n 
+0008440537 00000 n 
+0008440585 00000 n 
+0008440633 00000 n 
+0008440681 00000 n 
+0008440729 00000 n 
+0008440777 00000 n 
+0008452678 00000 n 
+0008453052 00000 n 
+0008453100 00000 n 
+0008453148 00000 n 
+0008453196 00000 n 
+0008466548 00000 n 
+0008466922 00000 n 
+0008466971 00000 n 
+0008477251 00000 n 
+0008477644 00000 n 
+0008477794 00000 n 
+0008477842 00000 n 
+0008477890 00000 n 
+0008490372 00000 n 
+0008490774 00000 n 
+0008490822 00000 n 
+0008490952 00000 n 
+0008491000 00000 n 
+0008491452 00000 n 
+0008491576 00000 n 
+0008491624 00000 n 
+0008491672 00000 n 
+0008491720 00000 n 
+0008496491 00000 n 
+0008496897 00000 n 
+0008496946 00000 n 
+0008497079 00000 n 
+0008497128 00000 n 
+0008506766 00000 n 
+0008507140 00000 n 
+0008528009 00000 n 
+0008528415 00000 n 
+0008528641 00000 n 
+0008528690 00000 n 
+0008539262 00000 n 
+0008539670 00000 n 
+0008539854 00000 n 
+0008539902 00000 n 
+0008539950 00000 n 
+0008540083 00000 n 
+0008540130 00000 n 
+0008549029 00000 n 
+0008549390 00000 n 
+0008549438 00000 n 
+0008559283 00000 n 
+0008559694 00000 n 
+0008559742 00000 n 
+0008559790 00000 n 
+0008559920 00000 n 
+0008559968 00000 n 
+0008560094 00000 n 
+0008560143 00000 n 
+0008560678 00000 n 
+0008560811 00000 n 
+0008560860 00000 n 
+0008566482 00000 n 
+0008566843 00000 n 
+0008566891 00000 n 
+0008578964 00000 n 
+0008579367 00000 n 
+0008579415 00000 n 
+0008579876 00000 n 
+0008580099 00000 n 
+0008580147 00000 n 
+0008580374 00000 n 
+0008591406 00000 n 
+0008591804 00000 n 
+0008591852 00000 n 
+0008592034 00000 n 
+0008592226 00000 n 
+0008592274 00000 n 
+0008592513 00000 n 
+0008592561 00000 n 
+0008600986 00000 n 
+0008601347 00000 n 
+0008601395 00000 n 
+0008601443 00000 n 
+0008607463 00000 n 
+0008607870 00000 n 
+0008607918 00000 n 
+0008608565 00000 n 
+0008608613 00000 n 
+0008608881 00000 n 
+0008609008 00000 n 
+0008609056 00000 n 
+0008609307 00000 n 
+0008609502 00000 n 
+0008621484 00000 n 
+0008621890 00000 n 
+0008621938 00000 n 
+0008621986 00000 n 
+0008622106 00000 n 
+0008641949 00000 n 
+0008642336 00000 n 
+0008642385 00000 n 
+0008642434 00000 n 
+0008655117 00000 n 
+0008655554 00000 n 
+0008655769 00000 n 
+0008655817 00000 n 
+0008655971 00000 n 
+0008656259 00000 n 
+0008656308 00000 n 
+0008656357 00000 n 
+0008669915 00000 n 
+0008670308 00000 n 
+0008670357 00000 n 
+0008670487 00000 n 
+0008670536 00000 n 
+0008683880 00000 n 
+0008684273 00000 n 
+0008684392 00000 n 
+0008684440 00000 n 
+0008686439 00000 n 
+0008686787 00000 n 
+0008700076 00000 n 
+0008700531 00000 n 
+0008700579 00000 n 
+0008700810 00000 n 
+0008700858 00000 n 
+0008701093 00000 n 
+0008701326 00000 n 
+0008701573 00000 n 
+0008701819 00000 n 
+0008701868 00000 n 
+0008701917 00000 n 
+0008718329 00000 n 
+0008718731 00000 n 
+0008718909 00000 n 
+0008718958 00000 n 
+0008719007 00000 n 
+0008725308 00000 n 
+0008725656 00000 n 
+0008725704 00000 n 
+0008733425 00000 n 
+0008733773 00000 n 
+0008734958 00000 n 
+0008735306 00000 n 
+0008746083 00000 n 
+0008746481 00000 n 
+0008746529 00000 n 
+0008746577 00000 n 
+0008746744 00000 n 
+0008746870 00000 n 
+0008747000 00000 n 
+0008747048 00000 n 
+0008747096 00000 n 
+0008747144 00000 n 
+0008782252 00000 n 
+0008782613 00000 n 
+0008782661 00000 n 
+0008782709 00000 n 
+0008782757 00000 n 
+0008939898 00000 n 
+0008943518 00000 n 
+0008944213 00000 n 
+0008944588 00000 n 
+0009038738 00000 n 
+0009125059 00000 n 
+0009126079 00000 n 
+0009126455 00000 n 
+0009196972 00000 n 
+0009207907 00000 n 
+0009208296 00000 n 
+0009208344 00000 n 
+0009208537 00000 n 
+0009208585 00000 n 
+0009208779 00000 n 
+0009219978 00000 n 
+0009220358 00000 n 
+0009220495 00000 n 
+0009272967 00000 n 
+0009278631 00000 n 
+0009279019 00000 n 
+0009279069 00000 n 
+0009288320 00000 n 
+0009288726 00000 n 
+0009288860 00000 n 
+0009288909 00000 n 
+0009301471 00000 n 
+0009301873 00000 n 
+0009302069 00000 n 
+0009302264 00000 n 
+0009302313 00000 n 
+0009308980 00000 n 
+0009309387 00000 n 
+0009309435 00000 n 
+0009465522 00000 n 
+0009467543 00000 n 
+0009467593 00000 n 
+0009468224 00000 n 
+0009468447 00000 n 
+0009483807 00000 n 
+0009484200 00000 n 
+0009484249 00000 n 
+0009484446 00000 n 
+0009484495 00000 n 
+0009499001 00000 n 
+0009499394 00000 n 
+0009499442 00000 n 
+0009499490 00000 n 
+0009499622 00000 n 
+0009511746 00000 n 
+0009512120 00000 n 
+0009512168 00000 n 
+0009512216 00000 n 
+0009512264 00000 n 
+0009521734 00000 n 
+0009522082 00000 n 
+0009530514 00000 n 
+0009530875 00000 n 
+0009530923 00000 n 
+0009541571 00000 n 
+0009541919 00000 n 
+0009558890 00000 n 
+0009559264 00000 n 
+0009559312 00000 n 
+0009559360 00000 n 
+0009572405 00000 n 
+0009572834 00000 n 
+0009572882 00000 n 
+0009573002 00000 n 
+0009573132 00000 n 
+0009573269 00000 n 
+0009573317 00000 n 
+0009573835 00000 n 
+0009573962 00000 n 
+0009574091 00000 n 
+0009574140 00000 n 
+0009582026 00000 n 
+0009582374 00000 n 
+0009591955 00000 n 
+0009592329 00000 n 
+0009592377 00000 n 
+0009592426 00000 n 
+0009607029 00000 n 
+0009607403 00000 n 
+0009607451 00000 n 
+0009621436 00000 n 
+0009621816 00000 n 
+0009621863 00000 n 
+0009622056 00000 n 
+0009632716 00000 n 
+0009633090 00000 n 
+0009633139 00000 n 
+0009649232 00000 n 
+0009649612 00000 n 
+0009649659 00000 n 
+0009649852 00000 n 
+0009651309 00000 n 
+0009651657 00000 n 
+0009660036 00000 n 
+0009660421 00000 n 
+0009660469 00000 n 
+0009660673 00000 n 
+0009660721 00000 n 
+0009660769 00000 n 
+0009660817 00000 n 
+0009660865 00000 n 
+0009661578 00000 n 
+0009661626 00000 n 
+0009661828 00000 n 
+0009661876 00000 n 
+0009662001 00000 n 
+0009663760 00000 n 
+0009664136 00000 n 
+0009664184 00000 n 
+0009664306 00000 n 
+0009664424 00000 n 
+0009676908 00000 n 
+0009677282 00000 n 
+0009677330 00000 n 
+0009677378 00000 n 
+0009677426 00000 n 
+0009686675 00000 n 
+0009687049 00000 n 
+0009687097 00000 n 
+0009687145 00000 n 
+0009687193 00000 n 
+0009687241 00000 n 
+0009697974 00000 n 
+0009698398 00000 n 
+0009698446 00000 n 
+0009698592 00000 n 
+0009698640 00000 n 
+0009698689 00000 n 
+0009698821 00000 n 
+0009698952 00000 n 
+0009710948 00000 n 
+0009711296 00000 n 
+0009715592 00000 n 
+0009716021 00000 n 
+0009716069 00000 n 
+0009716195 00000 n 
+0009716321 00000 n 
+0009716527 00000 n 
+0009716656 00000 n 
+0009716783 00000 n 
+0009729336 00000 n 
+0009729793 00000 n 
+0009729841 00000 n 
+0009729889 00000 n 
+0009729937 00000 n 
+0009730061 00000 n 
 0009730185 00000 n 
-0009730309 00000 n 
-0009730433 00000 n 
-0009730561 00000 n 
-0009730688 00000 n 
-0009730872 00000 n 
-0009730989 00000 n 
-0009731123 00000 n 
-0009731171 00000 n 
-0009731285 00000 n 
-0009731412 00000 n 
-0009731460 00000 n 
-0009731578 00000 n 
-0009731705 00000 n 
-0009749410 00000 n 
-0009749848 00000 n 
-0009749896 00000 n 
-0009750027 00000 n 
-0009750252 00000 n 
-0009750396 00000 n 
-0009750444 00000 n 
-0009750492 00000 n 
-0009750624 00000 n 
-0009750774 00000 n 
-0009750929 00000 n 
-0009762800 00000 n 
-0009763189 00000 n 
-0009763237 00000 n 
-0009763942 00000 n 
-0009763990 00000 n 
-0009764132 00000 n 
-0009764266 00000 n 
-0009777176 00000 n 
-0009777637 00000 n 
-0009777764 00000 n 
-0009777812 00000 n 
-0009777860 00000 n 
-0009778000 00000 n 
-0009778145 00000 n 
-0009778269 00000 n 
-0009778317 00000 n 
-0009778443 00000 n 
-0009778591 00000 n 
-0009778726 00000 n 
-0009778774 00000 n 
-0009778917 00000 n 
-0009779065 00000 n 
-0009779197 00000 n 
-0009793048 00000 n 
-0009793409 00000 n 
-0009793457 00000 n 
-0009809660 00000 n 
-0009810076 00000 n 
-0009810124 00000 n 
-0009810338 00000 n 
-0009810549 00000 n 
-0009841586 00000 n 
-0009841973 00000 n 
-0009853830 00000 n 
-0009854204 00000 n 
-0009854252 00000 n 
-0009854300 00000 n 
-0009854348 00000 n 
-0009854396 00000 n 
-0009854444 00000 n 
-0009864368 00000 n 
-0009864729 00000 n 
-0009864777 00000 n 
-0009875652 00000 n 
-0009876041 00000 n 
-0009876089 00000 n 
-0009876311 00000 n 
-0009876532 00000 n 
-0009886985 00000 n 
-0009887352 00000 n 
-0009887603 00000 n 
-0009897016 00000 n 
-0009897364 00000 n 
-0009910048 00000 n 
-0009910396 00000 n 
-0009921312 00000 n 
-0009921674 00000 n 
-0009923020 00000 n 
-0009923368 00000 n 
-0009923416 00000 n 
-0009935135 00000 n 
-0009935587 00000 n 
-0009935635 00000 n 
-0009935951 00000 n 
-0009936131 00000 n 
-0009936258 00000 n 
-0009936378 00000 n 
-0009936426 00000 n 
-0009936612 00000 n 
-0009936660 00000 n 
-0009937217 00000 n 
-0009937392 00000 n 
-0009937564 00000 n 
-0009937612 00000 n 
-0009937780 00000 n 
-0009937828 00000 n 
-0009938151 00000 n 
-0009938348 00000 n 
-0009950841 00000 n 
-0009951215 00000 n 
-0009951263 00000 n 
-0009961275 00000 n 
-0009961690 00000 n 
-0009961738 00000 n 
-0009962052 00000 n 
-0009962365 00000 n 
-0009964733 00000 n 
-0009965118 00000 n 
-0009965166 00000 n 
-0009965358 00000 n 
-0009965552 00000 n 
-0009965721 00000 n 
-0009979720 00000 n 
-0009980136 00000 n 
-0009980184 00000 n 
-0009980232 00000 n 
-0009980700 00000 n 
-0009980748 00000 n 
-0009980882 00000 n 
-0009980930 00000 n 
-0009980978 00000 n 
-0009981152 00000 n 
-0009991151 00000 n 
-0009991525 00000 n 
-0009991573 00000 n 
-0009991620 00000 n 
-0009991668 00000 n 
-0010001245 00000 n 
-0010001689 00000 n 
-0010001737 00000 n 
-0010001962 00000 n 
-0010002186 00000 n 
-0010002234 00000 n 
-0010002375 00000 n 
-0010002424 00000 n 
-0010002550 00000 n 
-0010002748 00000 n 
-0010012751 00000 n 
-0010013166 00000 n 
-0010013214 00000 n 
-0010013262 00000 n 
-0010013382 00000 n 
-0010013431 00000 n 
-0010013480 00000 n 
-0010013606 00000 n 
-0010013655 00000 n 
-0010013704 00000 n 
-0010025201 00000 n 
-0010025603 00000 n 
-0010025651 00000 n 
-0010025784 00000 n 
-0010025913 00000 n 
-0010025961 00000 n 
-0010026523 00000 n 
-0010026571 00000 n 
-0010039752 00000 n 
-0010040158 00000 n 
-0010040205 00000 n 
-0010040253 00000 n 
-0010040379 00000 n 
-0010042636 00000 n 
-0010043025 00000 n 
-0010043073 00000 n 
-0010043591 00000 n 
-0010043783 00000 n 
-0010043972 00000 n 
-0010045459 00000 n 
-0010045852 00000 n 
-0010045900 00000 n 
-0010046023 00000 n 
-0010046072 00000 n 
-0010063251 00000 n 
-0010063625 00000 n 
-0010063674 00000 n 
-0010080668 00000 n 
-0010081119 00000 n 
-0010081254 00000 n 
-0010081388 00000 n 
-0010081522 00000 n 
-0010081711 00000 n 
-0010081885 00000 n 
-0010082080 00000 n 
-0010093666 00000 n 
-0010094055 00000 n 
-0010094267 00000 n 
-0010094470 00000 n 
-0010108767 00000 n 
-0010109178 00000 n 
-0010109313 00000 n 
-0010109448 00000 n 
-0010109583 00000 n 
-0010123449 00000 n 
-0010123860 00000 n 
-0010124038 00000 n 
-0010124235 00000 n 
-0010124437 00000 n 
-0010138026 00000 n 
-0010138513 00000 n 
-0010138703 00000 n 
-0010138892 00000 n 
-0010139086 00000 n 
-0010139279 00000 n 
-0010139470 00000 n 
-0010139663 00000 n 
-0010139855 00000 n 
-0010139903 00000 n 
-0010140038 00000 n 
-0010140173 00000 n 
-0010140308 00000 n 
-0010142818 00000 n 
-0010143198 00000 n 
-0010143328 00000 n 
-0010146894 00000 n 
-0010147279 00000 n 
-0010147327 00000 n 
-0010147532 00000 n 
-0010147714 00000 n 
-0010147894 00000 n 
-0010156964 00000 n 
-0010157376 00000 n 
-0010157424 00000 n 
-0010157597 00000 n 
-0010157768 00000 n 
-0010157938 00000 n 
-0010160015 00000 n 
-0010160391 00000 n 
-0010160439 00000 n 
-0010160638 00000 n 
-0010160789 00000 n 
-0010163341 00000 n 
-0010163735 00000 n 
-0010163783 00000 n 
-0010163952 00000 n 
-0010164000 00000 n 
-0010164154 00000 n 
-0010164202 00000 n 
-0010164371 00000 n 
-0010164501 00000 n 
-0010177374 00000 n 
-0010177781 00000 n 
-0010177829 00000 n 
-0010177954 00000 n 
-0010178002 00000 n 
-0010178134 00000 n 
-0010178182 00000 n 
-0010178314 00000 n 
-0010178528 00000 n 
-0010189365 00000 n 
-0010189745 00000 n 
-0010189793 00000 n 
-0010189930 00000 n 
-0010189978 00000 n 
-0010190540 00000 n 
-0010214896 00000 n 
-0010215329 00000 n 
-0010215522 00000 n 
-0010215656 00000 n 
-0010215712 00000 n 
-0010215896 00000 n 
-0010215952 00000 n 
-0010216135 00000 n 
-0010216191 00000 n 
-0010229031 00000 n 
-0010229424 00000 n 
-0010229479 00000 n 
-0010229613 00000 n 
-0010229661 00000 n 
-0010229709 00000 n 
-0010229757 00000 n 
-0010229805 00000 n 
-0010229853 00000 n 
-0010241590 00000 n 
-0010241964 00000 n 
-0010242012 00000 n 
-0010242060 00000 n 
-0010242108 00000 n 
-0010256572 00000 n 
-0010256946 00000 n 
-0010256994 00000 n 
-0010257042 00000 n 
-0010257090 00000 n 
-0010257610 00000 n 
-0010264950 00000 n 
-0010265298 00000 n 
-0010265346 00000 n 
-0010265394 00000 n 
-0010265442 00000 n 
-0010265490 00000 n 
-0010291165 00000 n 
-0010291526 00000 n 
-0010291574 00000 n 
-0010292103 00000 n 
-0010308718 00000 n 
-0010309094 00000 n 
-0010324722 00000 n 
+0009730313 00000 n 
+0009730440 00000 n 
+0009730624 00000 n 
+0009730741 00000 n 
+0009730875 00000 n 
+0009730923 00000 n 
+0009731037 00000 n 
+0009731164 00000 n 
+0009731212 00000 n 
+0009731330 00000 n 
+0009731457 00000 n 
+0009749162 00000 n 
+0009749600 00000 n 
+0009749648 00000 n 
+0009749779 00000 n 
+0009750004 00000 n 
+0009750148 00000 n 
+0009750196 00000 n 
+0009750244 00000 n 
+0009750376 00000 n 
+0009750526 00000 n 
+0009750681 00000 n 
+0009762552 00000 n 
+0009762941 00000 n 
+0009762989 00000 n 
+0009763694 00000 n 
+0009763742 00000 n 
+0009763884 00000 n 
+0009764018 00000 n 
+0009776928 00000 n 
+0009777389 00000 n 
+0009777516 00000 n 
+0009777564 00000 n 
+0009777612 00000 n 
+0009777752 00000 n 
+0009777897 00000 n 
+0009778021 00000 n 
+0009778069 00000 n 
+0009778195 00000 n 
+0009778343 00000 n 
+0009778478 00000 n 
+0009778526 00000 n 
+0009778669 00000 n 
+0009778817 00000 n 
+0009778949 00000 n 
+0009792800 00000 n 
+0009793161 00000 n 
+0009793209 00000 n 
+0009809412 00000 n 
+0009809828 00000 n 
+0009809876 00000 n 
+0009810090 00000 n 
+0009810301 00000 n 
+0009841338 00000 n 
+0009841725 00000 n 
+0009853582 00000 n 
+0009853956 00000 n 
+0009854004 00000 n 
+0009854052 00000 n 
+0009854100 00000 n 
+0009854148 00000 n 
+0009854196 00000 n 
+0009864120 00000 n 
+0009864481 00000 n 
+0009864529 00000 n 
+0009875404 00000 n 
+0009875793 00000 n 
+0009875841 00000 n 
+0009876063 00000 n 
+0009876284 00000 n 
+0009886737 00000 n 
+0009887104 00000 n 
+0009887355 00000 n 
+0009896768 00000 n 
+0009897116 00000 n 
+0009909800 00000 n 
+0009910148 00000 n 
+0009921064 00000 n 
+0009921426 00000 n 
+0009922772 00000 n 
+0009923120 00000 n 
+0009923168 00000 n 
+0009934887 00000 n 
+0009935339 00000 n 
+0009935387 00000 n 
+0009935703 00000 n 
+0009935883 00000 n 
+0009936010 00000 n 
+0009936130 00000 n 
+0009936178 00000 n 
+0009936364 00000 n 
+0009936412 00000 n 
+0009936969 00000 n 
+0009937144 00000 n 
+0009937316 00000 n 
+0009937364 00000 n 
+0009937532 00000 n 
+0009937580 00000 n 
+0009937903 00000 n 
+0009938100 00000 n 
+0009950593 00000 n 
+0009950967 00000 n 
+0009951015 00000 n 
+0009961027 00000 n 
+0009961442 00000 n 
+0009961490 00000 n 
+0009961804 00000 n 
+0009962117 00000 n 
+0009964485 00000 n 
+0009964870 00000 n 
+0009964918 00000 n 
+0009965110 00000 n 
+0009965304 00000 n 
+0009965473 00000 n 
+0009979472 00000 n 
+0009979888 00000 n 
+0009979936 00000 n 
+0009979984 00000 n 
+0009980452 00000 n 
+0009980500 00000 n 
+0009980634 00000 n 
+0009980682 00000 n 
+0009980730 00000 n 
+0009980904 00000 n 
+0009990903 00000 n 
+0009991277 00000 n 
+0009991325 00000 n 
+0009991372 00000 n 
+0009991420 00000 n 
+0010000997 00000 n 
+0010001441 00000 n 
+0010001489 00000 n 
+0010001714 00000 n 
+0010001938 00000 n 
+0010001986 00000 n 
+0010002127 00000 n 
+0010002176 00000 n 
+0010002302 00000 n 
+0010002500 00000 n 
+0010012503 00000 n 
+0010012918 00000 n 
+0010012966 00000 n 
+0010013014 00000 n 
+0010013134 00000 n 
+0010013183 00000 n 
+0010013232 00000 n 
+0010013358 00000 n 
+0010013407 00000 n 
+0010013456 00000 n 
+0010024953 00000 n 
+0010025355 00000 n 
+0010025403 00000 n 
+0010025536 00000 n 
+0010025665 00000 n 
+0010025713 00000 n 
+0010026275 00000 n 
+0010026323 00000 n 
+0010039504 00000 n 
+0010039910 00000 n 
+0010039957 00000 n 
+0010040005 00000 n 
+0010040131 00000 n 
+0010042388 00000 n 
+0010042777 00000 n 
+0010042825 00000 n 
+0010043343 00000 n 
+0010043535 00000 n 
+0010043724 00000 n 
+0010045211 00000 n 
+0010045604 00000 n 
+0010045652 00000 n 
+0010045775 00000 n 
+0010045824 00000 n 
+0010063003 00000 n 
+0010063377 00000 n 
+0010063426 00000 n 
+0010080420 00000 n 
+0010080871 00000 n 
+0010081006 00000 n 
+0010081140 00000 n 
+0010081274 00000 n 
+0010081463 00000 n 
+0010081637 00000 n 
+0010081832 00000 n 
+0010093418 00000 n 
+0010093807 00000 n 
+0010094019 00000 n 
+0010094222 00000 n 
+0010108519 00000 n 
+0010108930 00000 n 
+0010109065 00000 n 
+0010109200 00000 n 
+0010109335 00000 n 
+0010123201 00000 n 
+0010123612 00000 n 
+0010123790 00000 n 
+0010123987 00000 n 
+0010124189 00000 n 
+0010137778 00000 n 
+0010138265 00000 n 
+0010138455 00000 n 
+0010138644 00000 n 
+0010138838 00000 n 
+0010139031 00000 n 
+0010139222 00000 n 
+0010139415 00000 n 
+0010139607 00000 n 
+0010139655 00000 n 
+0010139790 00000 n 
+0010139925 00000 n 
+0010140060 00000 n 
+0010142570 00000 n 
+0010142950 00000 n 
+0010143080 00000 n 
+0010146646 00000 n 
+0010147031 00000 n 
+0010147079 00000 n 
+0010147284 00000 n 
+0010147466 00000 n 
+0010147646 00000 n 
+0010156716 00000 n 
+0010157128 00000 n 
+0010157176 00000 n 
+0010157349 00000 n 
+0010157520 00000 n 
+0010157690 00000 n 
+0010159767 00000 n 
+0010160143 00000 n 
+0010160191 00000 n 
+0010160390 00000 n 
+0010160541 00000 n 
+0010163093 00000 n 
+0010163487 00000 n 
+0010163535 00000 n 
+0010163704 00000 n 
+0010163752 00000 n 
+0010163906 00000 n 
+0010163954 00000 n 
+0010164123 00000 n 
+0010164253 00000 n 
+0010177126 00000 n 
+0010177533 00000 n 
+0010177581 00000 n 
+0010177706 00000 n 
+0010177754 00000 n 
+0010177886 00000 n 
+0010177934 00000 n 
+0010178066 00000 n 
+0010178280 00000 n 
+0010189117 00000 n 
+0010189497 00000 n 
+0010189545 00000 n 
+0010189682 00000 n 
+0010189730 00000 n 
+0010190292 00000 n 
+0010214648 00000 n 
+0010215081 00000 n 
+0010215274 00000 n 
+0010215408 00000 n 
+0010215464 00000 n 
+0010215648 00000 n 
+0010215704 00000 n 
+0010215887 00000 n 
+0010215943 00000 n 
+0010228783 00000 n 
+0010229176 00000 n 
+0010229231 00000 n 
+0010229365 00000 n 
+0010229413 00000 n 
+0010229461 00000 n 
+0010229509 00000 n 
+0010229557 00000 n 
+0010229605 00000 n 
+0010241342 00000 n 
+0010241716 00000 n 
+0010241764 00000 n 
+0010241812 00000 n 
+0010241860 00000 n 
+0010256324 00000 n 
+0010256698 00000 n 
+0010256746 00000 n 
+0010256794 00000 n 
+0010256842 00000 n 
+0010257362 00000 n 
+0010264702 00000 n 
+0010265050 00000 n 
+0010265098 00000 n 
+0010265146 00000 n 
+0010265194 00000 n 
+0010265242 00000 n 
+0010290917 00000 n 
+0010291278 00000 n 
+0010291326 00000 n 
+0010291855 00000 n 
+0010308470 00000 n 
+0010308846 00000 n 
+0010324474 00000 n 
+0010324867 00000 n 
+0010324915 00000 n 
 0010325115 00000 n 
 0010325163 00000 n 
-0010325363 00000 n 
-0010325411 00000 n 
-0010325459 00000 n 
-0010342346 00000 n 
-0010342766 00000 n 
-0010342961 00000 n 
-0010343144 00000 n 
-0010343192 00000 n 
-0010343375 00000 n 
-0010343557 00000 n 
-0010355737 00000 n 
-0010356085 00000 n 
-0010368239 00000 n 
-0010368632 00000 n 
-0010368681 00000 n 
-0010368730 00000 n 
-0010368866 00000 n 
-0010368915 00000 n 
-0010384746 00000 n 
-0010385107 00000 n 
-0010395084 00000 n 
-0010395471 00000 n 
-0010395519 00000 n 
-0010395567 00000 n 
-0010395615 00000 n 
-0010395663 00000 n 
-0010418049 00000 n 
-0010418438 00000 n 
-0010418486 00000 n 
-0010418688 00000 n 
-0010418827 00000 n 
-0010418875 00000 n 
-0010419567 00000 n 
-0010419615 00000 n 
-0010445031 00000 n 
-0010445392 00000 n 
-0010445440 00000 n 
-0010445488 00000 n 
-0010445536 00000 n 
-0010445584 00000 n 
-0010456843 00000 n 
-0010457258 00000 n 
-0010457306 00000 n 
-0010457354 00000 n 
-0010457402 00000 n 
-0010457450 00000 n 
-0010457499 00000 n 
-0010457727 00000 n 
-0010457954 00000 n 
-0010467532 00000 n 
-0010467938 00000 n 
-0010467986 00000 n 
-0010468034 00000 n 
-0010468624 00000 n 
-0010468819 00000 n 
-0010468867 00000 n 
-0010480931 00000 n 
-0010481324 00000 n 
-0010481372 00000 n 
-0010481583 00000 n 
-0010481631 00000 n 
-0010482181 00000 n 
-0010482229 00000 n 
-0010482277 00000 n 
-0010482325 00000 n 
-0010482919 00000 n 
-0010483095 00000 n 
-0010498002 00000 n 
-0010498431 00000 n 
-0010498479 00000 n 
-0010499040 00000 n 
-0010499225 00000 n 
-0010499397 00000 n 
-0010499577 00000 n 
-0010499755 00000 n 
-0010499803 00000 n 
-0010499941 00000 n 
-0010514601 00000 n 
-0010515068 00000 n 
-0010515196 00000 n 
-0010515415 00000 n 
-0010515464 00000 n 
-0010515590 00000 n 
-0010515720 00000 n 
-0010515769 00000 n 
-0010515818 00000 n 
-0010516310 00000 n 
-0010516480 00000 n 
-0010516650 00000 n 
-0010529806 00000 n 
-0010530259 00000 n 
-0010530449 00000 n 
-0010530497 00000 n 
-0010530545 00000 n 
-0010530740 00000 n 
-0010530926 00000 n 
-0010530974 00000 n 
-0010531206 00000 n 
-0010531254 00000 n 
-0010531445 00000 n 
-0010531640 00000 n 
-0010531688 00000 n 
-0010546800 00000 n 
-0010547206 00000 n 
-0010547397 00000 n 
-0010555765 00000 n 
-0010556113 00000 n 
-0010567295 00000 n 
-0010567675 00000 n 
-0010567723 00000 n 
-0010567771 00000 n 
-0010567953 00000 n 
-0010578890 00000 n 
-0010579315 00000 n 
-0010579363 00000 n 
-0010579571 00000 n 
-0010579777 00000 n 
-0010579825 00000 n 
-0010579873 00000 n 
-0010580055 00000 n 
-0010580236 00000 n 
-0010580284 00000 n 
-0010580332 00000 n 
-0010580482 00000 n 
-0010580530 00000 n 
-0010580578 00000 n 
-0010580838 00000 n 
-0010594195 00000 n 
-0010594588 00000 n 
-0010594636 00000 n 
-0010594684 00000 n 
-0010595337 00000 n 
-0010595533 00000 n 
-0010597448 00000 n 
-0010597833 00000 n 
-0010597881 00000 n 
-0010598115 00000 n 
-0010598348 00000 n 
-0010598476 00000 n 
-0010624175 00000 n 
-0010624555 00000 n 
-0010624603 00000 n 
-0010624764 00000 n 
-0010650219 00000 n 
-0010650586 00000 n 
-0010650785 00000 n 
-0010658427 00000 n 
-0010658816 00000 n 
-0010658864 00000 n 
-0010659044 00000 n 
-0010659170 00000 n 
-0010703521 00000 n 
-0010703869 00000 n 
-0010736042 00000 n 
-0010736422 00000 n 
-0010736470 00000 n 
-0010736640 00000 n 
-0010781346 00000 n 
-0010781694 00000 n 
-0010788417 00000 n 
-0010788810 00000 n 
-0010788858 00000 n 
-0010788984 00000 n 
-0010836361 00000 n 
-0010836741 00000 n 
-0010836995 00000 n 
-0010837401 00000 n 
-0010837749 00000 n 
-0010837797 00000 n 
-0010853347 00000 n 
-0010853767 00000 n 
-0010853815 00000 n 
-0010854008 00000 n 
-0010854134 00000 n 
-0010854249 00000 n 
-0010854380 00000 n 
-0010854428 00000 n 
-0010877289 00000 n 
-0010877637 00000 n 
-0010896528 00000 n 
-0010896934 00000 n 
-0010896982 00000 n 
-0010897127 00000 n 
-0010915675 00000 n 
-0010916081 00000 n 
-0010916304 00000 n 
-0010924317 00000 n 
-0010924737 00000 n 
-0010924785 00000 n 
-0010925215 00000 n 
-0010925429 00000 n 
-0010925642 00000 n 
-0010925836 00000 n 
-0010926064 00000 n 
-0010945995 00000 n 
-0010946397 00000 n 
-0010946445 00000 n 
-0010947028 00000 n 
-0010947217 00000 n 
-0010947412 00000 n 
-0010947606 00000 n 
-0010947654 00000 n 
-0010967810 00000 n 
-0010968203 00000 n 
-0010968251 00000 n 
-0010968496 00000 n 
-0010999414 00000 n 
-0010999788 00000 n 
-0010999836 00000 n 
-0011019023 00000 n 
-0011019384 00000 n 
-0011028346 00000 n 
-0011028720 00000 n 
-0011028767 00000 n 
-0011028814 00000 n 
-0011039007 00000 n 
-0011039368 00000 n 
-0011039416 00000 n 
-0011039464 00000 n 
-0011039512 00000 n 
-0011042427 00000 n 
-0011042807 00000 n 
-0011042855 00000 n 
-0011043051 00000 n 
-0011043099 00000 n 
-0011043487 00000 n 
-0011043835 00000 n 
-0011043883 00000 n 
-0011052205 00000 n 
-0011052616 00000 n 
-0011052664 00000 n 
-0011052852 00000 n 
-0011052901 00000 n 
-0011053088 00000 n 
-0011053137 00000 n 
-0011053322 00000 n 
-0011053371 00000 n 
-0011061032 00000 n 
-0011061425 00000 n 
-0011061473 00000 n 
-0011061521 00000 n 
-0011061707 00000 n 
-0011065077 00000 n 
-0011065457 00000 n 
-0011065505 00000 n 
-0011065690 00000 n 
-0011066076 00000 n 
-0011066424 00000 n 
-0011066472 00000 n 
-0011078396 00000 n 
-0011078807 00000 n 
-0011078855 00000 n 
-0011079032 00000 n 
-0011079199 00000 n 
-0011079324 00000 n 
-0011079372 00000 n 
-0011079420 00000 n 
-0011093086 00000 n 
-0011093494 00000 n 
-0011093542 00000 n 
-0011094057 00000 n 
-0011094278 00000 n 
-0011114451 00000 n 
-0011114862 00000 n 
-0011115005 00000 n 
-0011115052 00000 n 
-0011115100 00000 n 
-0011115148 00000 n 
-0011115317 00000 n 
-0011115502 00000 n 
-0011141091 00000 n 
-0011141489 00000 n 
-0011141696 00000 n 
-0011141904 00000 n 
-0011142111 00000 n 
-0011160245 00000 n 
-0011160606 00000 n 
-0011175296 00000 n 
-0011175703 00000 n 
-0011175908 00000 n 
-0011176113 00000 n 
-0011176316 00000 n 
-0011176520 00000 n 
-0011184894 00000 n 
-0011185255 00000 n 
-0011193606 00000 n 
-0011194004 00000 n 
-0011194212 00000 n 
-0011194422 00000 n 
-0011194631 00000 n 
-0011208848 00000 n 
-0011209250 00000 n 
-0011209446 00000 n 
-0011209642 00000 n 
-0011226546 00000 n 
-0011226953 00000 n 
-0011227003 00000 n 
-0011227390 00000 n 
-0011227523 00000 n 
-0011227573 00000 n 
-0011238156 00000 n 
-0011238530 00000 n 
-0011238578 00000 n 
-0011238626 00000 n 
-0011249717 00000 n 
-0011250155 00000 n 
-0011250203 00000 n 
-0011250251 00000 n 
-0011250605 00000 n 
-0011250733 00000 n 
-0011250919 00000 n 
-0011251090 00000 n 
-0011251215 00000 n 
-0011251342 00000 n 
-0011251470 00000 n 
-0011251518 00000 n 
-0011263446 00000 n 
-0011263929 00000 n 
-0011263978 00000 n 
-0011264106 00000 n 
-0011264155 00000 n 
-0011264281 00000 n 
-0011264411 00000 n 
-0011264460 00000 n 
-0011264585 00000 n 
-0011264709 00000 n 
-0011264843 00000 n 
-0011264977 00000 n 
-0011265112 00000 n 
-0011265235 00000 n 
-0011265371 00000 n 
-0011265501 00000 n 
-0011271074 00000 n 
-0011271504 00000 n 
-0011271552 00000 n 
-0011271675 00000 n 
-0011271723 00000 n 
-0011271849 00000 n 
-0011271969 00000 n 
+0010325211 00000 n 
+0010342098 00000 n 
+0010342518 00000 n 
+0010342713 00000 n 
+0010342896 00000 n 
+0010342944 00000 n 
+0010343127 00000 n 
+0010343309 00000 n 
+0010355489 00000 n 
+0010355837 00000 n 
+0010367991 00000 n 
+0010368384 00000 n 
+0010368433 00000 n 
+0010368482 00000 n 
+0010368618 00000 n 
+0010368667 00000 n 
+0010384498 00000 n 
+0010384859 00000 n 
+0010394836 00000 n 
+0010395223 00000 n 
+0010395271 00000 n 
+0010395319 00000 n 
+0010395367 00000 n 
+0010395415 00000 n 
+0010417801 00000 n 
+0010418190 00000 n 
+0010418238 00000 n 
+0010418440 00000 n 
+0010418579 00000 n 
+0010418627 00000 n 
+0010419319 00000 n 
+0010419367 00000 n 
+0010444783 00000 n 
+0010445144 00000 n 
+0010445192 00000 n 
+0010445240 00000 n 
+0010445288 00000 n 
+0010445336 00000 n 
+0010456595 00000 n 
+0010457010 00000 n 
+0010457058 00000 n 
+0010457106 00000 n 
+0010457154 00000 n 
+0010457202 00000 n 
+0010457251 00000 n 
+0010457479 00000 n 
+0010457706 00000 n 
+0010467284 00000 n 
+0010467690 00000 n 
+0010467738 00000 n 
+0010467786 00000 n 
+0010468376 00000 n 
+0010468571 00000 n 
+0010468619 00000 n 
+0010480683 00000 n 
+0010481076 00000 n 
+0010481124 00000 n 
+0010481335 00000 n 
+0010481383 00000 n 
+0010481933 00000 n 
+0010481981 00000 n 
+0010482029 00000 n 
+0010482077 00000 n 
+0010482671 00000 n 
+0010482847 00000 n 
+0010497754 00000 n 
+0010498183 00000 n 
+0010498231 00000 n 
+0010498792 00000 n 
+0010498977 00000 n 
+0010499149 00000 n 
+0010499329 00000 n 
+0010499507 00000 n 
+0010499555 00000 n 
+0010499693 00000 n 
+0010514353 00000 n 
+0010514820 00000 n 
+0010514948 00000 n 
+0010515167 00000 n 
+0010515216 00000 n 
+0010515342 00000 n 
+0010515472 00000 n 
+0010515521 00000 n 
+0010515570 00000 n 
+0010516062 00000 n 
+0010516232 00000 n 
+0010516402 00000 n 
+0010529558 00000 n 
+0010530011 00000 n 
+0010530201 00000 n 
+0010530249 00000 n 
+0010530297 00000 n 
+0010530492 00000 n 
+0010530678 00000 n 
+0010530726 00000 n 
+0010530958 00000 n 
+0010531006 00000 n 
+0010531197 00000 n 
+0010531392 00000 n 
+0010531440 00000 n 
+0010546552 00000 n 
+0010546958 00000 n 
+0010547149 00000 n 
+0010555517 00000 n 
+0010555865 00000 n 
+0010567047 00000 n 
+0010567427 00000 n 
+0010567475 00000 n 
+0010567523 00000 n 
+0010567705 00000 n 
+0010578642 00000 n 
+0010579067 00000 n 
+0010579115 00000 n 
+0010579323 00000 n 
+0010579529 00000 n 
+0010579577 00000 n 
+0010579625 00000 n 
+0010579807 00000 n 
+0010579988 00000 n 
+0010580036 00000 n 
+0010580084 00000 n 
+0010580234 00000 n 
+0010580282 00000 n 
+0010580330 00000 n 
+0010580590 00000 n 
+0010593947 00000 n 
+0010594340 00000 n 
+0010594388 00000 n 
+0010594436 00000 n 
+0010595089 00000 n 
+0010595285 00000 n 
+0010597200 00000 n 
+0010597585 00000 n 
+0010597633 00000 n 
+0010597867 00000 n 
+0010598100 00000 n 
+0010598228 00000 n 
+0010623927 00000 n 
+0010624307 00000 n 
+0010624355 00000 n 
+0010624516 00000 n 
+0010649971 00000 n 
+0010650338 00000 n 
+0010650537 00000 n 
+0010658179 00000 n 
+0010658568 00000 n 
+0010658616 00000 n 
+0010658796 00000 n 
+0010658922 00000 n 
+0010703273 00000 n 
+0010703621 00000 n 
+0010735794 00000 n 
+0010736174 00000 n 
+0010736222 00000 n 
+0010736392 00000 n 
+0010781098 00000 n 
+0010781446 00000 n 
+0010788169 00000 n 
+0010788562 00000 n 
+0010788610 00000 n 
+0010788736 00000 n 
+0010836113 00000 n 
+0010836493 00000 n 
+0010836747 00000 n 
+0010837153 00000 n 
+0010837501 00000 n 
+0010837549 00000 n 
+0010853099 00000 n 
+0010853519 00000 n 
+0010853567 00000 n 
+0010853760 00000 n 
+0010853886 00000 n 
+0010854001 00000 n 
+0010854132 00000 n 
+0010854180 00000 n 
+0010877041 00000 n 
+0010877389 00000 n 
+0010896280 00000 n 
+0010896686 00000 n 
+0010896734 00000 n 
+0010896879 00000 n 
+0010915427 00000 n 
+0010915833 00000 n 
+0010916056 00000 n 
+0010924069 00000 n 
+0010924489 00000 n 
+0010924537 00000 n 
+0010924967 00000 n 
+0010925181 00000 n 
+0010925394 00000 n 
+0010925588 00000 n 
+0010925816 00000 n 
+0010945747 00000 n 
+0010946149 00000 n 
+0010946197 00000 n 
+0010946780 00000 n 
+0010946969 00000 n 
+0010947164 00000 n 
+0010947358 00000 n 
+0010947406 00000 n 
+0010967562 00000 n 
+0010967955 00000 n 
+0010968003 00000 n 
+0010968248 00000 n 
+0010999166 00000 n 
+0010999540 00000 n 
+0010999588 00000 n 
+0011018775 00000 n 
+0011019136 00000 n 
+0011028098 00000 n 
+0011028472 00000 n 
+0011028519 00000 n 
+0011028566 00000 n 
+0011038759 00000 n 
+0011039120 00000 n 
+0011039168 00000 n 
+0011039216 00000 n 
+0011039264 00000 n 
+0011042179 00000 n 
+0011042559 00000 n 
+0011042607 00000 n 
+0011042803 00000 n 
+0011042851 00000 n 
+0011043239 00000 n 
+0011043587 00000 n 
+0011043635 00000 n 
+0011051957 00000 n 
+0011052368 00000 n 
+0011052416 00000 n 
+0011052604 00000 n 
+0011052653 00000 n 
+0011052840 00000 n 
+0011052889 00000 n 
+0011053074 00000 n 
+0011053123 00000 n 
+0011060784 00000 n 
+0011061177 00000 n 
+0011061225 00000 n 
+0011061273 00000 n 
+0011061459 00000 n 
+0011064829 00000 n 
+0011065209 00000 n 
+0011065257 00000 n 
+0011065442 00000 n 
+0011065828 00000 n 
+0011066176 00000 n 
+0011066224 00000 n 
+0011078148 00000 n 
+0011078559 00000 n 
+0011078607 00000 n 
+0011078784 00000 n 
+0011078951 00000 n 
+0011079076 00000 n 
+0011079124 00000 n 
+0011079172 00000 n 
+0011092838 00000 n 
+0011093246 00000 n 
+0011093294 00000 n 
+0011093809 00000 n 
+0011094030 00000 n 
+0011114203 00000 n 
+0011114614 00000 n 
+0011114757 00000 n 
+0011114804 00000 n 
+0011114852 00000 n 
+0011114900 00000 n 
+0011115069 00000 n 
+0011115254 00000 n 
+0011140843 00000 n 
+0011141241 00000 n 
+0011141448 00000 n 
+0011141656 00000 n 
+0011141863 00000 n 
+0011159997 00000 n 
+0011160358 00000 n 
+0011175048 00000 n 
+0011175455 00000 n 
+0011175660 00000 n 
+0011175865 00000 n 
+0011176068 00000 n 
+0011176272 00000 n 
+0011184646 00000 n 
+0011185007 00000 n 
+0011193358 00000 n 
+0011193756 00000 n 
+0011193964 00000 n 
+0011194174 00000 n 
+0011194383 00000 n 
+0011208600 00000 n 
+0011209002 00000 n 
+0011209198 00000 n 
+0011209394 00000 n 
+0011226298 00000 n 
+0011226705 00000 n 
+0011226755 00000 n 
+0011227142 00000 n 
+0011227275 00000 n 
+0011227325 00000 n 
+0011237908 00000 n 
+0011238282 00000 n 
+0011238330 00000 n 
+0011238378 00000 n 
+0011249469 00000 n 
+0011249907 00000 n 
+0011249955 00000 n 
+0011250003 00000 n 
+0011250357 00000 n 
+0011250485 000

<TRUNCATED>

[04/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html
index d08fee2..046a589 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":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";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.63">TestRSGroupsWithACL</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.57">TestRSGroupsWithACL</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.html" title="class in org.apache.hadoop.hbase.security.access">SecureTestUtil</a></pre>
 <div class="block">Performs authorization checks for rsgroup operations, according to different
  levels of authorized users.</div>
@@ -152,106 +152,94 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private static org.apache.hadoop.hbase.security.access.AccessController</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#accessController">accessController</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#conf">conf</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private static org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#CP_ENV">CP_ENV</a></span></code>&nbsp;</td>
-</tr>
 <tr class="altColor">
-<td class="colFirst"><code>private static org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#CTX">CTX</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#GROUP_ADMIN">GROUP_ADMIN</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#GROUP_CREATE">GROUP_CREATE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#GROUP_READ">GROUP_READ</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#GROUP_WRITE">GROUP_WRITE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#rsGroupAdminEndpoint">rsGroupAdminEndpoint</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#SUPERUSER">SUPERUSER</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.client.Connection</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#systemUserConnection">systemUserConnection</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#TEST_FAMILY">TEST_FAMILY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.TableName</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#TEST_TABLE">TEST_TABLE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_ADMIN">USER_ADMIN</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_CREATE">USER_CREATE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_GROUP_ADMIN">USER_GROUP_ADMIN</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_GROUP_CREATE">USER_GROUP_CREATE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_GROUP_READ">USER_GROUP_READ</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_GROUP_WRITE">USER_GROUP_WRITE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_NONE">USER_NONE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_OWNER">USER_OWNER</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_RO">USER_RO</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.security.User</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#USER_RW">USER_RW</a></span></code>&nbsp;</td>
 </tr>
@@ -347,14 +335,6 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#testRemoveRSGroup--">testRemoveRSGroup</a></span>()</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/rsgroup/TestRSGroupsWithACL.html#testRemoveServers--">testRemoveServers</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i16" class="altColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#validateAdminPermissions-org.apache.hadoop.hbase.security.access.SecureTestUtil.AccessTestAction-">validateAdminPermissions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</a>&nbsp;action)</code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.security.access.SecureTestUtil">
@@ -390,7 +370,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.66">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.60">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -399,7 +379,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.69">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.63">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_TABLE">
@@ -408,7 +388,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_TABLE</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.70">TEST_TABLE</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.64">TEST_TABLE</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -417,7 +397,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.71">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.65">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -426,7 +406,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>private static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.72">conf</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.66">conf</a></pre>
 </li>
 </ul>
 <a name="systemUserConnection">
@@ -435,7 +415,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>systemUserConnection</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.74">systemUserConnection</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.68">systemUserConnection</a></pre>
 </li>
 </ul>
 <a name="SUPERUSER">
@@ -444,7 +424,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>SUPERUSER</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.76">SUPERUSER</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.70">SUPERUSER</a></pre>
 </li>
 </ul>
 <a name="USER_ADMIN">
@@ -453,7 +433,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_ADMIN</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.78">USER_ADMIN</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.72">USER_ADMIN</a></pre>
 </li>
 </ul>
 <a name="USER_RW">
@@ -462,7 +442,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_RW</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.80">USER_RW</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.74">USER_RW</a></pre>
 </li>
 </ul>
 <a name="USER_RO">
@@ -471,7 +451,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_RO</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.82">USER_RO</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.76">USER_RO</a></pre>
 </li>
 </ul>
 <a name="USER_OWNER">
@@ -480,7 +460,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_OWNER</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.84">USER_OWNER</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.78">USER_OWNER</a></pre>
 </li>
 </ul>
 <a name="USER_CREATE">
@@ -489,7 +469,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_CREATE</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.86">USER_CREATE</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.80">USER_CREATE</a></pre>
 </li>
 </ul>
 <a name="USER_NONE">
@@ -498,7 +478,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_NONE</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.88">USER_NONE</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.82">USER_NONE</a></pre>
 </li>
 </ul>
 <a name="GROUP_ADMIN">
@@ -507,7 +487,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>GROUP_ADMIN</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.90">GROUP_ADMIN</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.84">GROUP_ADMIN</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.TestRSGroupsWithACL.GROUP_ADMIN">Constant Field Values</a></dd>
@@ -520,7 +500,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>GROUP_CREATE</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.91">GROUP_CREATE</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.85">GROUP_CREATE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.TestRSGroupsWithACL.GROUP_CREATE">Constant Field Values</a></dd>
@@ -533,7 +513,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>GROUP_READ</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.92">GROUP_READ</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.86">GROUP_READ</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.TestRSGroupsWithACL.GROUP_READ">Constant Field Values</a></dd>
@@ -546,7 +526,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>GROUP_WRITE</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.93">GROUP_WRITE</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.87">GROUP_WRITE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.TestRSGroupsWithACL.GROUP_WRITE">Constant Field Values</a></dd>
@@ -559,7 +539,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_GROUP_ADMIN</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.95">USER_GROUP_ADMIN</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.89">USER_GROUP_ADMIN</a></pre>
 </li>
 </ul>
 <a name="USER_GROUP_CREATE">
@@ -568,7 +548,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_GROUP_CREATE</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.96">USER_GROUP_CREATE</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.90">USER_GROUP_CREATE</a></pre>
 </li>
 </ul>
 <a name="USER_GROUP_READ">
@@ -577,7 +557,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_GROUP_READ</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.97">USER_GROUP_READ</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.91">USER_GROUP_READ</a></pre>
 </li>
 </ul>
 <a name="USER_GROUP_WRITE">
@@ -586,7 +566,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>USER_GROUP_WRITE</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.98">USER_GROUP_WRITE</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.security.User <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.92">USER_GROUP_WRITE</a></pre>
 </li>
 </ul>
 <a name="TEST_FAMILY">
@@ -595,43 +575,16 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_FAMILY</h4>
-<pre>private static&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.100">TEST_FAMILY</a></pre>
+<pre>private static&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.94">TEST_FAMILY</a></pre>
 </li>
 </ul>
 <a name="rsGroupAdminEndpoint">
 <!--   -->
 </a>
-<ul class="blockList">
-<li class="blockList">
-<h4>rsGroupAdminEndpoint</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.102">rsGroupAdminEndpoint</a></pre>
-</li>
-</ul>
-<a name="accessController">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>accessController</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.security.access.AccessController <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.103">accessController</a></pre>
-</li>
-</ul>
-<a name="CP_ENV">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>CP_ENV</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.104">CP_ENV</a></pre>
-</li>
-</ul>
-<a name="CTX">
-<!--   -->
-</a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>CTX</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.105">CTX</a></pre>
+<h4>rsGroupAdminEndpoint</h4>
+<pre>private static&nbsp;org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.96">rsGroupAdminEndpoint</a></pre>
 </li>
 </ul>
 </li>
@@ -648,7 +601,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestRSGroupsWithACL</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.63">TestRSGroupsWithACL</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.57">TestRSGroupsWithACL</a>()</pre>
 </li>
 </ul>
 </li>
@@ -665,7 +618,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>setupBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.108">setupBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.99">setupBeforeClass</a>()
                              throws <a href="https://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>
@@ -679,7 +632,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpTableAndUserPermissions</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.155">setUpTableAndUserPermissions</a>()
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.139">setUpTableAndUserPermissions</a>()
                                           throws <a href="https://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>
@@ -693,7 +646,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanUp</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.202">cleanUp</a>()
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.186">cleanUp</a>()
                      throws <a href="https://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>
@@ -707,7 +660,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.217">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.201">tearDownAfterClass</a>()
                                throws <a href="https://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>
@@ -721,7 +674,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>configureRSGroupAdminEndpoint</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.224">configureRSGroupAdminEndpoint</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.208">configureRSGroupAdminEndpoint</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="testGetRSGroupInfo--">
@@ -730,7 +683,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>testGetRSGroupInfo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.236">testGetRSGroupInfo</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.220">testGetRSGroupInfo</a>()
                         throws <a href="https://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>
@@ -744,7 +697,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>testGetRSGroupInfoOfTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.246">testGetRSGroupInfoOfTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.232">testGetRSGroupInfoOfTable</a>()
                                throws <a href="https://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>
@@ -758,7 +711,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>testMoveServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.256">testMoveServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.244">testMoveServers</a>()
                      throws <a href="https://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>
@@ -772,7 +725,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>testMoveTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.266">testMoveTables</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.256">testMoveTables</a>()
                     throws <a href="https://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>
@@ -786,7 +739,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>testAddRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.276">testAddRSGroup</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.268">testAddRSGroup</a>()
                     throws <a href="https://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>
@@ -800,7 +753,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>testRemoveRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.286">testRemoveRSGroup</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.280">testRemoveRSGroup</a>()
                        throws <a href="https://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>
@@ -814,7 +767,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>testBalanceRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.296">testBalanceRSGroup</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.292">testBalanceRSGroup</a>()
                         throws <a href="https://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>
@@ -828,7 +781,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <ul class="blockList">
 <li class="blockList">
 <h4>testListRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.306">testListRSGroup</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.304">testListRSGroup</a>()
                      throws <a href="https://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>
@@ -853,10 +806,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 <a name="testMoveServersAndTables--">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>testMoveServersAndTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.326">testMoveServersAndTables</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.328">testMoveServersAndTables</a>()
                               throws <a href="https://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>
@@ -864,34 +817,6 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTe
 </dl>
 </li>
 </ul>
-<a name="testRemoveServers--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testRemoveServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.336">testRemoveServers</a>()
-                       throws <a href="https://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>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="validateAdminPermissions-org.apache.hadoop.hbase.security.access.SecureTestUtil.AccessTestAction-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>validateAdminPermissions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#line.345">validateAdminPermissions</a>(<a href="../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</a>&nbsp;action)
-                               throws <a href="https://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>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html
index fe4500d..b463e0d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html
@@ -189,7 +189,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.security.access.AccessController</h3>
-<code>checkLockPermissions, checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadSer
 vers, preCloneSnapshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExecuteProcedures, preExists, preFlush, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamesp
 aceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preStopMaster, preStopRegionServer, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireAccess, requireGlobalPermission, requireGlobalPermission, requireNamespacePermission, requireNamespacePermission, requirePermission, requirePermission, requireTablePermission, revoke, start, stop</code></li>
+<code>checkLockPermissions, checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, 
 preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExecuteProcedures, preExists, preFlush, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnap
 shot, preSplitRegion, preStopMaster, preStopRegionServer, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireAccess, requireGlobalPermission, requireGlobalPermission, requireNamespacePermission, requireNamespacePermission, requirePermission, requirePermission, requireTablePermission, revoke, start, stop</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -203,7 +203,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterMetrics, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionR
 egionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetClusterMetrics, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
+<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterMetrics, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionR
 egionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preAddRSGroup, preBalanceRSGroup, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetClusterMetrics, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preModifyTableAction, preMoveServers, preMoveServersAndTables, preMoveTables, preRemoveRSGroup, preRemoveServers, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html
index 3e8bcc9..b7c9a12 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html
@@ -206,7 +206,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.security.access.AccessController</h3>
-<code>checkLockPermissions, checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadSer
 vers, preCloneSnapshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExecuteProcedures, preExists, preFlush, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamesp
 aceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preStopMaster, preStopRegionServer, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireAccess, requireGlobalPermission, requireGlobalPermission, requireNamespacePermission, requireNamespacePermission, requirePermission, requirePermission, requireTablePermission, revoke, start</code></li>
+<code>checkLockPermissions, checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, 
 preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExecuteProcedures, preExists, preFlush, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnap
 shot, preSplitRegion, preStopMaster, preStopRegionServer, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireAccess, requireGlobalPermission, requireGlobalPermission, requireNamespacePermission, requireNamespacePermission, requirePermission, requirePermission, requireTablePermission, revoke, start</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -220,7 +220,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterMetrics, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionR
 egionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetClusterMetrics, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
+<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterMetrics, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionR
 egionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preAddRSGroup, preBalanceRSGroup, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetClusterMetrics, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preModifyTableAction, preMoveServers, preMoveServersAndTables, preMoveTables, preRemoveRSGroup, preRemoveServers, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html
index 7230844f..bcdec1e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html
@@ -87,10 +87,6 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.rsgroup">org.apache.hadoop.hbase.rsgroup</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.security.access">org.apache.hadoop.hbase.security.access</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -121,24 +117,6 @@
 </tbody>
 </table>
 </li>
-<li class="blockList"><a name="org.apache.hadoop.hbase.rsgroup">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</a> in <a href="../../../../../../../org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a> with parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</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>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">TestRSGroupsWithACL.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#validateAdminPermissions-org.apache.hadoop.hbase.security.access.SecureTestUtil.AccessTestAction-">validateAdminPermissions</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/security/access/SecureTestUtil.AccessTestAction.html" title="interface in org.apache.hadoop.hbase.security.access">SecureTestUtil.AccessTestAction</a>&nbsp;action)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.security.access">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/security/access/package-use.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/package-use.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/package-use.html
index 9f0012e..de31221 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/package-use.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/package-use.html
@@ -134,12 +134,6 @@
 <div class="block">Utility methods for testing security</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/security/access/class-use/SecureTestUtil.AccessTestAction.html#org.apache.hadoop.hbase.rsgroup">SecureTestUtil.AccessTestAction</a>
-<div class="block">An AccessTestAction performs an action that will be examined to confirm
- the results conform to expected access rights.</div>
-</td>
-</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html b/testdevapidocs/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html
index 625b9c0..c453c3a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html
@@ -677,9 +677,9 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  given snapshot to complete on the server by repeatedly checking the master.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>master:</code> - the master running the snapshot</dd>
-<dd><code>snapshot:</code> - the snapshot to check</dd>
-<dd><code>sleep:</code> - amount to sleep between checks to see if the snapshot is done</dd>
+<dd><code>master</code> - the master running the snapshot</dd>
+<dd><code>snapshot</code> - the snapshot to check</dd>
+<dd><code>sleep</code> - amount to sleep between checks to see if the snapshot is done</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code>com.google.protobuf.ServiceException</code> - if the snapshot fails</dd>
 <dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
@@ -765,7 +765,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">List all the HFiles in the given table</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>fs:</code> - FileSystem where the table lives</dd>
+<dd><code>fs</code> - FileSystem where the table lives</dd>
 <dd><code>tableDir</code> - directory of the table</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>array of the current HFiles in the table (could be a zero-length array)</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 ecfaabf..ca2f60e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -253,9 +253,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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>
 <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/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/util/HFileArchiveTestingUtil.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/HFileArchiveTestingUtil.html b/testdevapidocs/org/apache/hadoop/hbase/util/HFileArchiveTestingUtil.html
index 91d185c..e74d666 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/HFileArchiveTestingUtil.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/HFileArchiveTestingUtil.html
@@ -369,7 +369,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                org.apache.hadoop.fs.FileStatus[]&nbsp;archived)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd><expected, gotten, backup>, where each is sorted</dd>
+<dd>&lt;expected, gotten, backup&gt;, where each is sorted</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/util/LoadTestTool.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/LoadTestTool.html b/testdevapidocs/org/apache/hadoop/hbase/util/LoadTestTool.html
index 32b26a9..49e78b4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/LoadTestTool.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/LoadTestTool.html
@@ -2047,11 +2047,11 @@ extends org.apache.hadoop.hbase.util.AbstractHBaseTool</pre>
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">When NUM_TABLES is specified, the function starts multiple worker threads
  which individually start a LoadTestTool instance to load a table. Each
- table name is in format <tn>_<index>. For example, "-tn test -num_tables 2"
+ table name is in format &lt;tn>_&lt;index>. For example, "-tn test -num_tables 2"
  , table names will be "test_1", "test_2"</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if one of the load tasks is unable to complete</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/org/apache/hadoop/hbase/util/TestRegionSplitter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestRegionSplitter.html b/testdevapidocs/org/apache/hadoop/hbase/util/TestRegionSplitter.html
index b017a38..b76b327 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestRegionSplitter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/TestRegionSplitter.html
@@ -191,7 +191,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code>private static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitter.html#indexOfBytes-java.util.List-byte:A-">indexOfBytes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;list,
             byte[]&nbsp;compareTo)</code>
-<div class="block">List.indexOf() doesn't really work for a List<byte[]>, because byte[]
+<div class="block">List.indexOf() doesn't really work for a List&lt;byte[]>, because byte[]
  doesn't override equals().</div>
 </td>
 </tr>
@@ -608,7 +608,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <h4>indexOfBytes</h4>
 <pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestRegionSplitter.html#line.433">indexOfBytes</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;list,
                                 byte[]&nbsp;compareTo)</pre>
-<div class="block">List.indexOf() doesn't really work for a List<byte[]>, because byte[]
+<div class="block">List.indexOf() doesn't really work for a List&lt;byte[]>, because byte[]
  doesn't override equals(). This method checks whether a list contains
  a given element by checking each element using the byte array
  comparator.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/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 84112c6..cc06fe6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -139,9 +139,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index e33f261..01ea261 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -3555,6 +3555,7 @@
 </li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTableDescriptorBuilder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/TestTableDescriptorModificationFromClient.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TestTableDescriptorModificationFromClient</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableDescriptorUtils.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTableDescriptorUtils</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestTableFavoredNodes</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TestTableInputFormat.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TestTableInputFormat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestTableInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TestTableInputFormat</span></a></li>


[29/51] [partial] hbase-site git commit: Published site at 997747076d8ec0b4346d7cb99c4b0667a7c14905.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4df09ed9/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
index 3da432b..d30fa8f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
@@ -928,7690 +928,7698 @@
 <span class="sourceLineNo">920</span>      Collection&lt;HStore&gt; stores = this.stores.values();<a name="line.920"></a>
 <span class="sourceLineNo">921</span>      try {<a name="line.921"></a>
 <span class="sourceLineNo">922</span>        // update the stores that we are replaying<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // Recover any edits if available.<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        maxSeqId = Math.max(maxSeqId,<a name="line.925"></a>
-<span class="sourceLineNo">926</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.926"></a>
-<span class="sourceLineNo">927</span>        // Make sure mvcc is up to max.<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      } finally {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>        // update the stores that we are done replaying<a name="line.930"></a>
-<span class="sourceLineNo">931</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      }<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    this.writestate.flushRequested = false;<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    this.writestate.compacting.set(0);<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    if (this.writestate.writesEnabled) {<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      // Remove temporary data left over from old regions<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      fs.cleanupTempDir();<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>    if (this.writestate.writesEnabled) {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      // these directories here on open.  We may be opening a region that was<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      // being split but we crashed in the middle of it all.<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      fs.cleanupAnySplitDetritus();<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      fs.cleanupMergesDir();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    // Initialize split policy<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    // Initialize flush policy<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (HStore store: stores.values()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    long maxSeqIdFromFile =<a name="line.968"></a>
-<span class="sourceLineNo">969</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (writestate.writesEnabled) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>    // A region can be reopened if failed a split; reset flags<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    this.closing.set(false);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.closed.set(false);<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>    if (coprocessorHost != null) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.982"></a>
-<span class="sourceLineNo">983</span>      coprocessorHost.postOpen();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">923</span>        LOG.debug("replaying wal for " + this.getRegionInfo().getEncodedName());<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        stores.forEach(HStore::startReplayingFromWAL);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        // Recover any edits if available.<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        maxSeqId = Math.max(maxSeqId,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>          replayRecoveredEditsIfAny(this.fs.getRegionDir(), maxSeqIdInStores, reporter, status));<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        // Make sure mvcc is up to max.<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        this.mvcc.advanceTo(maxSeqId);<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      } finally {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        LOG.debug("stopping wal replay for " + this.getRegionInfo().getEncodedName());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        // update the stores that we are done replaying<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        stores.forEach(HStore::stopReplayingFromWAL);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    this.lastReplayedOpenRegionSeqId = maxSeqId;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    this.writestate.setReadOnly(ServerRegionReplicaUtil.isReadOnly(this));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    this.writestate.flushRequested = false;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    this.writestate.compacting.set(0);<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>    if (this.writestate.writesEnabled) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      LOG.debug("Cleaning up temporary data for " + this.getRegionInfo().getEncodedName());<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      // Remove temporary data left over from old regions<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      status.setStatus("Cleaning up temporary data from old regions");<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      fs.cleanupTempDir();<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (this.writestate.writesEnabled) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      status.setStatus("Cleaning up detritus from prior splits");<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      // Get rid of any splits or merges that were lost in-progress.  Clean out<a name="line.951"></a>
+<span class="sourceLineNo">952</span>      // these directories here on open.  We may be opening a region that was<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      // being split but we crashed in the middle of it all.<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      LOG.debug("Cleaning up detritus for " + this.getRegionInfo().getEncodedName());<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      fs.cleanupAnySplitDetritus();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>      fs.cleanupMergesDir();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // Initialize split policy<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    this.splitPolicy = RegionSplitPolicy.create(this, conf);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // Initialize flush policy<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    this.flushPolicy = FlushPolicyFactory.create(this, conf);<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>    long lastFlushTime = EnvironmentEdgeManager.currentTime();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    for (HStore store: stores.values()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      this.lastStoreFlushTimeMap.put(store, lastFlushTime);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // Use maximum of log sequenceid or that which was found in stores<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    // (particularly if no recovered edits, seqid will be -1).<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    long maxSeqIdFromFile =<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      WALSplitter.getMaxRegionSequenceId(fs.getFileSystem(), fs.getRegionDir());<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    long nextSeqId = Math.max(maxSeqId, maxSeqIdFromFile) + 1;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (writestate.writesEnabled) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      LOG.debug("writing seq id for " + this.getRegionInfo().getEncodedName());<a name="line.976"></a>
+<span class="sourceLineNo">977</span>      WALSplitter.writeRegionSequenceIdFile(fs.getFileSystem(), fs.getRegionDir(), nextSeqId - 1);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
+<span class="sourceLineNo">979</span><a name="line.979"></a>
+<span class="sourceLineNo">980</span>    LOG.info("Opened {}; next sequenceid={}", this.getRegionInfo().getShortNameToLog(), nextSeqId);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    // A region can be reopened if failed a split; reset flags<a name="line.982"></a>
+<span class="sourceLineNo">983</span>    this.closing.set(false);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    this.closed.set(false);<a name="line.984"></a>
 <span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>    status.markComplete("Region opened successfully");<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return nextSeqId;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * Open all Stores.<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * @param reporter<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * @param status<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * @return Highest sequenceId found out in a Store.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @throws IOException<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      throws IOException {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    // Load in all the HStores.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    long maxSeqId = -1;<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    long maxMemstoreTS = -1;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span><a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1008"></a>
+<span class="sourceLineNo">986</span>    if (coprocessorHost != null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>      LOG.debug("Running coprocessor post-open hooks for " + this.getRegionInfo().getEncodedName());<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      status.setStatus("Running coprocessor post-open hooks");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>      coprocessorHost.postOpen();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>    }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span>    status.markComplete("Region opened successfully");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    return nextSeqId;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>  }<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>   * Open all Stores.<a name="line.997"></a>
+<span class="sourceLineNo">998</span>   * @param reporter<a name="line.998"></a>
+<span class="sourceLineNo">999</span>   * @param status<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>   * @return Highest sequenceId found out in a Store.<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * @throws IOException<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>  private long initializeStores(CancelableProgressable reporter, MonitoredTask status)<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      throws IOException {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Load in all the HStores.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    long maxSeqId = -1;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    // initialized to -1 so that we pick up MemstoreTS from column families<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    long maxMemstoreTS = -1;<a name="line.1008"></a>
 <span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      // initialize each store in parallel<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>          @Override<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>          public HStore call() throws IOException {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>            return instantiateHStore(family);<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>      boolean allStoresOpened = false;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      boolean hasSloppyStores = false;<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      try {<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>          HStore store = future.get();<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>          if (store.isSloppyMemStore()) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>            hasSloppyStores = true;<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          }<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span><a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>              storeMaxSequenceId);<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>            maxSeqId = storeMaxSequenceId;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>          }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>          }<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        allStoresOpened = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        if(hasSloppyStores) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>                  .build();<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      } catch (InterruptedException e) {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      } catch (ExecutionException e) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        throw new IOException(e.getCause());<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>      } finally {<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        if (!allStoresOpened) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>          // something went wrong, close all opened stores<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>          for (HStore store : this.stores.values()) {<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            try {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>              store.close();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            } catch (IOException e) {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>              LOG.warn("close store failed", e);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>          }<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    }<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span><a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    // Initialize all the HStores<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    status.setStatus("Warming up all the Stores");<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>    try {<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      initializeStores(reporter, status);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    } finally {<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      status.markComplete("Done warming up.");<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  /**<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>   * @return Map of StoreFiles by column family<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>   */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    for (HStore store : stores.values()) {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>      if (storeFiles == null) {<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        continue;<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>      }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        storeFileNames.add(storeFile.getPath());<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>      }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    return allStoreFiles;<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>  }<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span><a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  @VisibleForTesting<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>        mvcc);<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>  }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span><a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        mvcc);<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span><a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Store SeqId in HDFS when a region closes<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    // table is still online<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>        mvcc.getReadPoint());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>  }<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span><a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if this region has references.<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>  public boolean hasReferences() {<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  public void blockUpdates() {<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    this.updatesLock.writeLock().lock();<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  public void unblockUpdates() {<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    this.updatesLock.writeLock().unlock();<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  }<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    return hdfsBlocksDistribution;<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  }<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param conf configuration<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * @param regionInfo encoded name of the region<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @throws IOException<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   */<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  }<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span><a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>  /**<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @param conf configuration<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param regionInfo encoded name of the region<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param tablePath the table directory<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * @throws IOException<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span><a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (locatedFileStatusList == null) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        continue;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        Path p = status.getPath();<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>          // creation<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>              status.getBlockLocations());<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>        } else {<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>          throw new IOException("path=" + p<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>              + " doesn't look like a valid StoreFile");<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>      }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    return hdfsBlocksDistribution;<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>  }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * store<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   */<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>  }<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>    if (this.rsAccounting != null) {<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>    }<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    long dataSize =<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  }<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span><a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span><a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    if (this.rsAccounting != null) {<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    long dataSize =<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  }<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>    if (memStoreDataSize &lt; 0) {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>  }<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>  @Override<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>  public RegionInfo getRegionInfo() {<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    return this.fs.getRegionInfo();<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   * Can be null.<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  RegionServerServices getRegionServerServices() {<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    return this.rsServices;<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  }<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span><a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>  @Override<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>  public long getReadRequestsCount() {<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>    return readRequestsCount.sum();<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  }<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  @Override<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>  public long getFilteredReadRequestsCount() {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>    return filteredReadRequestsCount.sum();<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  }<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span><a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  @Override<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  public long getWriteRequestsCount() {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>    return writeRequestsCount.sum();<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>  }<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span><a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>  @Override<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  public long getMemStoreDataSize() {<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    return memStoreSizing.getDataSize();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  }<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  @Override<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>  public long getMemStoreHeapSize() {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>    return memStoreSizing.getHeapSize();<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  }<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span><a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>  @Override<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  public long getMemStoreOffHeapSize() {<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>    return memStoreSizing.getOffHeapSize();<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  }<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>    return regionServicesForStores;<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  }<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span><a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  @Override<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>  public long getNumMutationsWithoutWAL() {<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    return numMutationsWithoutWAL.sum();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  }<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  @Override<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  }<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  @Override<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>  public long getBlockedRequestsCount() {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>    return blockedRequestsCount.sum();<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>  }<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span><a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>  @Override<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>    return checkAndMutateChecksPassed.sum();<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>  }<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span><a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>  @Override<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    return checkAndMutateChecksFailed.sum();<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span><a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>  // feature?<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  public MetricsRegion getMetrics() {<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    return metricsRegion;<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>  }<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span><a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>  @Override<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  public boolean isClosed() {<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>    return this.closed.get();<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>  }<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span><a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>  @Override<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>  public boolean isClosing() {<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>    return this.closing.get();<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  }<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span><a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>  @Override<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  public boolean isReadOnly() {<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    return this.writestate.isReadOnly();<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  }<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span><a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>  @Override<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>  public boolean isAvailable() {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>  }<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span><a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>  @Override<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>  public boolean isSplittable() {<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>  }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  @Override<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>  public boolean isMergeable() {<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>    if (!isAvailable()) {<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>      LOG.debug("Region " + this<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>          + " is not mergeable because it is closing or closed");<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>      return false;<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    if (hasReferences()) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      LOG.debug("Region " + this<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>          + " is not mergeable because it has references");<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>      return false;<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>    }<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span><a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>    return true;<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  }<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public boolean areWritesEnabled() {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    synchronized(this.writestate) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>      return this.writestate.writesEnabled;<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>    }<a name="line.1373"></a>
+<span class="sourceLineNo">1010</span>    if (htableDescriptor.getColumnFamilyCount() != 0) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>      // initialize the thread pool for opening stores in parallel.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>      ThreadPoolExecutor storeOpenerThreadPool =<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        getStoreOpenAndCloseThreadPool("StoreOpener-" + this.getRegionInfo().getShortNameToLog());<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      CompletionService&lt;HStore&gt; completionService = new ExecutorCompletionService&lt;&gt;(storeOpenerThreadPool);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      // initialize each store in parallel<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      for (final ColumnFamilyDescriptor family : htableDescriptor.getColumnFamilies()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        status.setStatus("Instantiating store for column family " + family);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        completionService.submit(new Callable&lt;HStore&gt;() {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>          @Override<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>          public HStore call() throws IOException {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>            return instantiateHStore(family);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>          }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        });<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>      }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      boolean allStoresOpened = false;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>      boolean hasSloppyStores = false;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>      try {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        for (int i = 0; i &lt; htableDescriptor.getColumnFamilyCount(); i++) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>          Future&lt;HStore&gt; future = completionService.take();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>          HStore store = future.get();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          this.stores.put(store.getColumnFamilyDescriptor().getName(), store);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>          if (store.isSloppyMemStore()) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>            hasSloppyStores = true;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>          }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>          long storeMaxSequenceId = store.getMaxSequenceId().orElse(0L);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>          maxSeqIdInStores.put(Bytes.toBytes(store.getColumnFamilyName()),<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>              storeMaxSequenceId);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          if (maxSeqId == -1 || storeMaxSequenceId &gt; maxSeqId) {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>            maxSeqId = storeMaxSequenceId;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>          long maxStoreMemstoreTS = store.getMaxMemStoreTS().orElse(0L);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>          if (maxStoreMemstoreTS &gt; maxMemstoreTS) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>            maxMemstoreTS = maxStoreMemstoreTS;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>          }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        allStoresOpened = true;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        if(hasSloppyStores) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>          htableDescriptor = TableDescriptorBuilder.newBuilder(htableDescriptor)<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                  .setFlushPolicyClassName(FlushNonSloppyStoresFirstPolicy.class.getName())<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                  .build();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>          LOG.info("Setting FlushNonSloppyStoresFirstPolicy for the region=" + this);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      } catch (InterruptedException e) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      } catch (ExecutionException e) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        throw new IOException(e.getCause());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      } finally {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        storeOpenerThreadPool.shutdownNow();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>        if (!allStoresOpened) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>          // something went wrong, close all opened stores<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>          LOG.error("Could not initialize all stores for the region=" + this);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>          for (HStore store : this.stores.values()) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            try {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              store.close();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>            } catch (IOException e) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>              LOG.warn("close store failed", e);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>            }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>          }<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>    }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    return Math.max(maxSeqId, maxMemstoreTS + 1);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  private void initializeWarmup(final CancelableProgressable reporter) throws IOException {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    MonitoredTask status = TaskMonitor.get().createStatus("Initializing region " + this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    // Initialize all the HStores<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    status.setStatus("Warming up all the Stores");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    try {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>      initializeStores(reporter, status);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    } finally {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>      status.markComplete("Done warming up.");<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>    }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>  }<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>   * @return Map of StoreFiles by column family<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>   */<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  private NavigableMap&lt;byte[], List&lt;Path&gt;&gt; getStoreFiles() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    NavigableMap&lt;byte[], List&lt;Path&gt;&gt; allStoreFiles = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    for (HStore store : stores.values()) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      Collection&lt;HStoreFile&gt; storeFiles = store.getStorefiles();<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      if (storeFiles == null) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>        continue;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      List&lt;Path&gt; storeFileNames = new ArrayList&lt;&gt;();<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>      for (HStoreFile storeFile : storeFiles) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>        storeFileNames.add(storeFile.getPath());<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>      allStoreFiles.put(store.getColumnFamilyDescriptor().getName(), storeFileNames);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    return allStoreFiles;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>  }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span><a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>  @VisibleForTesting<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  protected void writeRegionOpenMarker(WAL wal, long openSeqId) throws IOException {<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    RegionEventDescriptor regionOpenDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>      RegionEventDescriptor.EventType.REGION_OPEN, getRegionInfo(), openSeqId,<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionOpenDesc,<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        mvcc);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  private void writeRegionCloseMarker(WAL wal) throws IOException {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    Map&lt;byte[], List&lt;Path&gt;&gt; storeFiles = getStoreFiles();<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    RegionEventDescriptor regionEventDesc = ProtobufUtil.toRegionEventDescriptor(<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>      RegionEventDescriptor.EventType.REGION_CLOSE, getRegionInfo(), mvcc.getReadPoint(),<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      getRegionServerServices().getServerName(), storeFiles);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>    WALUtil.writeRegionEventMarker(wal, getReplicationScope(), getRegionInfo(), regionEventDesc,<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        mvcc);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>    // Store SeqId in HDFS when a region closes<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>    // checking region folder exists is due to many tests which delete the table folder while a<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>    // table is still online<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>    if (this.fs.getFileSystem().exists(this.fs.getRegionDir())) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>      WALSplitter.writeRegionSequenceIdFile(this.fs.getFileSystem(), this.fs.getRegionDir(),<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>        mvcc.getReadPoint());<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>  }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>   * @return True if this region has references.<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>   */<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  public boolean hasReferences() {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>    return stores.values().stream().anyMatch(HStore::hasReferences);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>  }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span><a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>  public void blockUpdates() {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    this.updatesLock.writeLock().lock();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>  }<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  public void unblockUpdates() {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>    this.updatesLock.writeLock().unlock();<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>  public HDFSBlocksDistribution getHDFSBlocksDistribution() {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    stores.values().stream().filter(s -&gt; s.getStorefiles() != null)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        .flatMap(s -&gt; s.getStorefiles().stream()).map(HStoreFile::getHDFSBlockDistribution)<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>        .forEachOrdered(hdfsBlocksDistribution::add);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    return hdfsBlocksDistribution;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>  }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span><a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>  /**<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @param conf configuration<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * @param regionInfo encoded name of the region<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @throws IOException<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo) throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    Path tablePath = FSUtils.getTableDir(FSUtils.getRootDir(conf), tableDescriptor.getTableName());<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    return computeHDFSBlocksDistribution(conf, tableDescriptor, regionInfo, tablePath);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span><a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * This is a helper function to compute HDFS block distribution on demand<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * @param conf configuration<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * @param tableDescriptor TableDescriptor of the table<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * @param regionInfo encoded name of the region<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * @param tablePath the table directory<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @return The HDFS blocks distribution for the given region.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @throws IOException<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  public static HDFSBlocksDistribution computeHDFSBlocksDistribution(Configuration conf,<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      TableDescriptor tableDescriptor, RegionInfo regionInfo, Path tablePath) throws IOException {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>    HDFSBlocksDistribution hdfsBlocksDistribution = new HDFSBlocksDistribution();<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>    FileSystem fs = tablePath.getFileSystem(conf);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>    HRegionFileSystem regionFs = new HRegionFileSystem(conf, fs, tablePath, regionInfo);<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>    for (ColumnFamilyDescriptor family : tableDescriptor.getColumnFamilies()) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>      List&lt;LocatedFileStatus&gt; locatedFileStatusList = HRegionFileSystem<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>          .getStoreFilesLocatedStatus(regionFs, family.getNameAsString(), true);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>      if (locatedFileStatusList == null) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        continue;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      for (LocatedFileStatus status : locatedFileStatusList) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        Path p = status.getPath();<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>        if (StoreFileInfo.isReference(p) || HFileLink.isHFileLink(p)) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>          // Only construct StoreFileInfo object if its not a hfile, save obj<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          // creation<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          StoreFileInfo storeFileInfo = new StoreFileInfo(conf, fs, status);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>          hdfsBlocksDistribution.add(storeFileInfo<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>              .computeHDFSBlocksDistribution(fs));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        } else if (StoreFileInfo.isHFile(p)) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>          // If its a HFile, then lets just add to the block distribution<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>          // lets not create more objects here, not even another HDFSBlocksDistribution<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>          FSUtils.addToHDFSBlocksDistribution(hdfsBlocksDistribution,<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>              status.getBlockLocations());<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        } else {<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>          throw new IOException("path=" + p<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>              + " doesn't look like a valid StoreFile");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>      }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    return hdfsBlocksDistribution;<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>  }<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span><a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  /**<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * Increase the size of mem store in this region and the size of global mem<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   * store<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>   */<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  void incMemStoreSize(MemStoreSize mss) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>    incMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>  }<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>  void incMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>    if (this.rsAccounting != null) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      rsAccounting.incGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    long dataSize =<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>        this.memStoreSizing.incMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    checkNegativeMemStoreDataSize(dataSize, dataSizeDelta);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span><a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  void decrMemStoreSize(MemStoreSize mss) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>    decrMemStoreSize(mss.getDataSize(), mss.getHeapSize(), mss.getOffHeapSize());<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span><a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>  void decrMemStoreSize(long dataSizeDelta, long heapSizeDelta, long offHeapSizeDelta) {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>    if (this.rsAccounting != null) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>      rsAccounting.decGlobalMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>    }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>    long dataSize =<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        this.memStoreSizing.decMemStoreSize(dataSizeDelta, heapSizeDelta, offHeapSizeDelta);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    checkNegativeMemStoreDataSize(dataSize, -dataSizeDelta);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>  }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  private void checkNegativeMemStoreDataSize(long memStoreDataSize, long delta) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>    // This is extremely bad if we make memStoreSizing negative. Log as much info on the offending<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>    // caller as possible. (memStoreSizing might be a negative value already -- freeing memory)<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    if (memStoreDataSize &lt; 0) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      LOG.error("Asked to modify this region's (" + this.toString()<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>          + ") memStoreSizing to a negative value which is incorrect. Current memStoreSizing="<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>          + (memStoreDataSize - delta) + ", delta=" + delta, new Exception());<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>    }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span><a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>  @Override<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  public RegionInfo getRegionInfo() {<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    return this.fs.getRegionInfo();<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>   * @return Instance of {@link RegionServerServices} used by this HRegion.<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Can be null.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>  RegionServerServices getRegionServerServices() {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    return this.rsServices;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  @Override<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  public long getReadRequestsCount() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    return readRequestsCount.sum();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>  }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  @Override<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>  public long getFilteredReadRequestsCount() {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>    return filteredReadRequestsCount.sum();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>  }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span><a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  @Override<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>  public long getWriteRequestsCount() {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return writeRequestsCount.sum();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span><a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public long getMemStoreDataSize() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return memStoreSizing.getDataSize();<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public long getMemStoreHeapSize() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return memStoreSizing.getHeapSize();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public long getMemStoreOffHeapSize() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return memStoreSizing.getOffHeapSize();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  /** @return store services for this region, to access services required by store level needs */<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public RegionServicesForStores getRegionServicesForStores() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return regionServicesForStores;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public long getNumMutationsWithoutWAL() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return numMutationsWithoutWAL.sum();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  @Override<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  public long getDataInMemoryWithoutWAL() {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>    return dataInMemoryWithoutWAL.sum();<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>  }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span><a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>  @Override<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>  public long getBlockedRequestsCount() {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>    return blockedRequestsCount.sum();<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>  }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  @Override<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>  public long getCheckAndMutateChecksPassed() {<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    return checkAndMutateChecksPassed.sum();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  }<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span><a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>  @Override<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>  public long getCheckAndMutateChecksFailed() {<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    return checkAndMutateChecksFailed.sum();<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>  }<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span><a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>  // TODO Needs to check whether we should expose our metrics system to CPs. If CPs themselves doing<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  // the op and bypassing the core, this might be needed? Should be stop supporting the bypass<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>  // feature?<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>  public MetricsRegion getMetrics() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    return metricsRegion;<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>  }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>  @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>  public boolean isClosed() {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>    return this.closed.get();<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>  }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span><a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>  @Override<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>  public boolean isClosing() {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>    return this.closing.get();<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>  }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>  @Override<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>  public boolean isReadOnly() {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>    return this.writestate.isReadOnly();<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>  }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span><a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>  @Override<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>  public boolean isAvailable() {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    return !isClosed() &amp;&amp; !isClosing();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>  }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  @Override<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>  public boolean isSplittable() {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>    return isAvailable() &amp;&amp; !hasReferences();<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span><a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>  @Override<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  public boolean isMergeable() {<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    if (!isAvailable()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>      LOG.debug("Region " + this<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>          + " is not mergeable because it is closi

<TRUNCATED>