You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2017/04/01 03:33:28 UTC

[01/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site cb7512f6b -> 993199fcd


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html
index 5c9f96e..2bb994d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html
@@ -30,245 +30,397 @@
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
 <span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
-<span class="sourceLineNo">025</span><a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.Log;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.commons.logging.LogFactory;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.conf.Configuration;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.fs.FileStatus;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FileSystem;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.Path;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HConstants;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.Server;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.ServerName;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.util.EnvironmentEdge;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.AfterClass;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.BeforeClass;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.junit.Test;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.junit.experimental.categories.Category;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>@Category({MasterTests.class, MediumTests.class})<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class TestHFileCleaner {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private static final Log LOG = LogFactory.getLog(TestHFileCleaner.class);<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private final static HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  @BeforeClass<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public static void setupCluster() throws Exception {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    // have to use a minidfs cluster because the localfs doesn't modify file times correctly<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    UTIL.startMiniDFSCluster(1);<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>  @AfterClass<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public static void shutdownCluster() throws IOException {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    UTIL.shutdownMiniDFSCluster();<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>  @Test<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  public void testTTLCleaner() throws IOException, InterruptedException {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    Path root = UTIL.getDataTestDirOnTestFS();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    Path file = new Path(root, "file");<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    fs.createNewFile(file);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    long createTime = System.currentTimeMillis();<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    assertTrue("Test file not created!", fs.exists(file));<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    TimeToLiveHFileCleaner cleaner = new TimeToLiveHFileCleaner();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    // update the time info for the file, so the cleaner removes it<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    fs.setTimes(file, createTime - 100, -1);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    Configuration conf = UTIL.getConfiguration();<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 100);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    cleaner.setConf(conf);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertTrue("File not set deletable - check mod time:" + getFileStats(file, fs)<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        + " with create time:" + createTime, cleaner.isFileDeletable(fs.getFileStatus(file)));<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * @param file to check<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @return loggable information about the file<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private String getFileStats(Path file, FileSystem fs) throws IOException {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    FileStatus status = fs.getFileStatus(file);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return "File" + file + ", mtime:" + status.getModificationTime() + ", atime:"<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        + status.getAccessTime();<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>  @Test(timeout = 60 *1000)<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public void testHFileCleaning() throws Exception {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    final EnvironmentEdge originalEdge = EnvironmentEdgeManager.getDelegate();<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    String prefix = "someHFileThatWouldBeAUUID";<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    Configuration conf = UTIL.getConfiguration();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    // set TTL<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    long ttl = 2000;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    conf.set(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      "org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner");<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, ttl);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    Server server = new DummyServer();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    Path archivedHfileDir = new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    FileSystem fs = FileSystem.get(conf);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>    // Create 2 invalid files, 1 "recent" file, 1 very new file and 30 old files<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final long createTime = System.currentTimeMillis();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    fs.delete(archivedHfileDir, true);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    fs.mkdirs(archivedHfileDir);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    // Case 1: 1 invalid file, which should be deleted directly<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    fs.createNewFile(new Path(archivedHfileDir, "dfd-dfd"));<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    // Case 2: 1 "recent" file, not even deletable for the first log cleaner<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    // (TimeToLiveLogCleaner), so we are not going down the chain<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    LOG.debug("Now is: " + createTime);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    for (int i = 1; i &lt; 32; i++) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      // Case 3: old files which would be deletable for the first log cleaner<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      // (TimeToLiveHFileCleaner),<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      Path fileName = new Path(archivedHfileDir, (prefix + "." + (createTime + i)));<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      fs.createNewFile(fileName);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      // set the creation time past ttl to ensure that it gets removed<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      fs.setTimes(fileName, createTime - ttl - 1, -1);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      LOG.debug("Creating " + getFileStats(fileName, fs));<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>    // Case 2: 1 newer file, not even deletable for the first log cleaner<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // (TimeToLiveLogCleaner), so we are not going down the chain<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    Path saved = new Path(archivedHfileDir, prefix + ".00000000000");<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    fs.createNewFile(saved);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    // set creation time within the ttl<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    fs.setTimes(saved, createTime - ttl / 2, -1);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    LOG.debug("Creating " + getFileStats(saved, fs));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    for (FileStatus stat : fs.listStatus(archivedHfileDir)) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      LOG.debug(stat.getPath().toString());<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>    assertEquals(33, fs.listStatus(archivedHfileDir).length);<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>    // set a custom edge manager to handle time checking<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    EnvironmentEdge setTime = new EnvironmentEdge() {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      public long currentTime() {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        return createTime;<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>    EnvironmentEdgeManager.injectEdge(setTime);<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    // run the chore<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    cleaner.chore();<a name="line.152"></a>
+<span class="sourceLineNo">025</span>import java.util.Random;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.commons.logging.Log;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.logging.LogFactory;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.conf.Configuration;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.FileStatus;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.fs.FileSystem;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.fs.Path;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HConstants;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.Server;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.util.EnvironmentEdge;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.AfterClass;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.junit.Assert;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.BeforeClass;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.Test;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.experimental.categories.Category;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>@Category({MasterTests.class, MediumTests.class})<a name="line.53"></a>
+<span class="sourceLineNo">054</span>public class TestHFileCleaner {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static final Log LOG = LogFactory.getLog(TestHFileCleaner.class);<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>  private final static HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  @BeforeClass<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  public static void setupCluster() throws Exception {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    // have to use a minidfs cluster because the localfs doesn't modify file times correctly<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    UTIL.startMiniDFSCluster(1);<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>  @AfterClass<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public static void shutdownCluster() throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    UTIL.shutdownMiniDFSCluster();<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>  @Test<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public void testTTLCleaner() throws IOException, InterruptedException {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    Path root = UTIL.getDataTestDirOnTestFS();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    Path file = new Path(root, "file");<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    fs.createNewFile(file);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    long createTime = System.currentTimeMillis();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    assertTrue("Test file not created!", fs.exists(file));<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    TimeToLiveHFileCleaner cleaner = new TimeToLiveHFileCleaner();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    // update the time info for the file, so the cleaner removes it<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    fs.setTimes(file, createTime - 100, -1);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    Configuration conf = UTIL.getConfiguration();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 100);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    cleaner.setConf(conf);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    assertTrue("File not set deletable - check mod time:" + getFileStats(file, fs)<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        + " with create time:" + createTime, cleaner.isFileDeletable(fs.getFileStatus(file)));<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>   * @param file to check<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @return loggable information about the file<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private String getFileStats(Path file, FileSystem fs) throws IOException {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    FileStatus status = fs.getFileStatus(file);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    return "File" + file + ", mtime:" + status.getModificationTime() + ", atime:"<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        + status.getAccessTime();<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>  @Test(timeout = 60 *1000)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public void testHFileCleaning() throws Exception {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    final EnvironmentEdge originalEdge = EnvironmentEdgeManager.getDelegate();<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    String prefix = "someHFileThatWouldBeAUUID";<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    Configuration conf = UTIL.getConfiguration();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // set TTL<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    long ttl = 2000;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    conf.set(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS,<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      "org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, ttl);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    Server server = new DummyServer();<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    Path archivedHfileDir = new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    FileSystem fs = FileSystem.get(conf);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // Create 2 invalid files, 1 "recent" file, 1 very new file and 30 old files<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    final long createTime = System.currentTimeMillis();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    fs.delete(archivedHfileDir, true);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    fs.mkdirs(archivedHfileDir);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    // Case 1: 1 invalid file, which should be deleted directly<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    fs.createNewFile(new Path(archivedHfileDir, "dfd-dfd"));<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    // Case 2: 1 "recent" file, not even deletable for the first log cleaner<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // (TimeToLiveLogCleaner), so we are not going down the chain<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    LOG.debug("Now is: " + createTime);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    for (int i = 1; i &lt; 32; i++) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      // Case 3: old files which would be deletable for the first log cleaner<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      // (TimeToLiveHFileCleaner),<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      Path fileName = new Path(archivedHfileDir, (prefix + "." + (createTime + i)));<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      fs.createNewFile(fileName);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      // set the creation time past ttl to ensure that it gets removed<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      fs.setTimes(fileName, createTime - ttl - 1, -1);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      LOG.debug("Creating " + getFileStats(fileName, fs));<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>    // Case 2: 1 newer file, not even deletable for the first log cleaner<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    // (TimeToLiveLogCleaner), so we are not going down the chain<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    Path saved = new Path(archivedHfileDir, prefix + ".00000000000");<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    fs.createNewFile(saved);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    // set creation time within the ttl<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    fs.setTimes(saved, createTime - ttl / 2, -1);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    LOG.debug("Creating " + getFileStats(saved, fs));<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    for (FileStatus stat : fs.listStatus(archivedHfileDir)) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      LOG.debug(stat.getPath().toString());<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>    assertEquals(33, fs.listStatus(archivedHfileDir).length);<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>    // set a custom edge manager to handle time checking<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    EnvironmentEdge setTime = new EnvironmentEdge() {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      public long currentTime() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        return createTime;<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>    EnvironmentEdgeManager.injectEdge(setTime);<a name="line.152"></a>
 <span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    // ensure we only end up with the saved file<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    assertEquals(1, fs.listStatus(archivedHfileDir).length);<a name="line.155"></a>
+<span class="sourceLineNo">154</span>    // run the chore<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    cleaner.chore();<a name="line.155"></a>
 <span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>    for (FileStatus file : fs.listStatus(archivedHfileDir)) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      LOG.debug("Kept hfiles: " + file.getPath().getName());<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>    // reset the edge back to the original edge<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    EnvironmentEdgeManager.injectEdge(originalEdge);<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>  @Test<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void testRemovesEmptyDirectories() throws Exception {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    Configuration conf = UTIL.getConfiguration();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    // no cleaner policies = delete all files<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Server server = new DummyServer();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Path archivedHfileDir = new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    // setup the cleaner<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // make all the directories for archiving files<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    Path table = new Path(archivedHfileDir, "table");<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    Path region = new Path(table, "regionsomthing");<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    Path family = new Path(region, "fam");<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    Path file = new Path(family, "file12345");<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    fs.mkdirs(family);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    if (!fs.exists(family)) throw new RuntimeException("Couldn't create test family:" + family);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    fs.create(file).close();<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    if (!fs.exists(file)) throw new RuntimeException("Test file didn't get created:" + file);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    // run the chore to cleanup the files (and the directories above it)<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    cleaner.chore();<a name="line.188"></a>
+<span class="sourceLineNo">157</span>    // ensure we only end up with the saved file<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    assertEquals(1, fs.listStatus(archivedHfileDir).length);<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>    for (FileStatus file : fs.listStatus(archivedHfileDir)) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      LOG.debug("Kept hfiles: " + file.getPath().getName());<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>    // reset the edge back to the original edge<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    EnvironmentEdgeManager.injectEdge(originalEdge);<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 testRemovesEmptyDirectories() throws Exception {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Configuration conf = UTIL.getConfiguration();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    // no cleaner policies = delete all files<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    Server server = new DummyServer();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    Path archivedHfileDir = new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // setup the cleaner<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>    // make all the directories for archiving files<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    Path table = new Path(archivedHfileDir, "table");<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    Path region = new Path(table, "regionsomthing");<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    Path family = new Path(region, "fam");<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Path file = new Path(family, "file12345");<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    fs.mkdirs(family);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    if (!fs.exists(family)) throw new RuntimeException("Couldn't create test family:" + family);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    fs.create(file).close();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    if (!fs.exists(file)) throw new RuntimeException("Test file didn't get created:" + file);<a name="line.188"></a>
 <span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>    // make sure all the parent directories get removed<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    assertFalse("family directory not removed for empty directory", fs.exists(family));<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    assertFalse("region directory not removed for empty directory", fs.exists(region));<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    assertFalse("table directory not removed for empty directory", fs.exists(table));<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    assertTrue("archive directory", fs.exists(archivedHfileDir));<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>  static class DummyServer implements Server {<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    @Override<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    public Configuration getConfiguration() {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      return UTIL.getConfiguration();<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>    @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      try {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        return new ZooKeeperWatcher(getConfiguration(), "dummy server", this);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      } catch (IOException e) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        e.printStackTrace();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      return null;<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>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      return null;<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 ClusterConnection getConnection() {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      return null;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    @Override<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      return null;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>    @Override<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public ServerName getServerName() {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      return ServerName.valueOf("regionserver,60020,000000");<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>    @Override<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    public void abort(String why, Throwable e) {<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>    @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public boolean isAborted() {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      return false;<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>    @Override<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public void stop(String why) {<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>    public boolean isStopped() {<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>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public ChoreService getChoreService() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return null;<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>    @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    public ClusterConnection getClusterConnection() {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      // TODO Auto-generated method stub<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      return null;<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>}<a name="line.263"></a>
+<span class="sourceLineNo">190</span>    // run the chore to cleanup the files (and the directories above it)<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    cleaner.chore();<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>    // make sure all the parent directories get removed<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    assertFalse("family directory not removed for empty directory", fs.exists(family));<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    assertFalse("region directory not removed for empty directory", fs.exists(region));<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    assertFalse("table directory not removed for empty directory", fs.exists(table));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    assertTrue("archive directory", fs.exists(archivedHfileDir));<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>  static class DummyServer implements Server {<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>    public Configuration getConfiguration() {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      return UTIL.getConfiguration();<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>    @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      try {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        return new ZooKeeperWatcher(getConfiguration(), "dummy server", this);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      } catch (IOException e) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        e.printStackTrace();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      return null;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      return null;<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 ClusterConnection getConnection() {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      return null;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    @Override<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      return null;<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>    @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public ServerName getServerName() {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      return ServerName.valueOf("regionserver,60020,000000");<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>    @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    public void abort(String why, Throwable e) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    public boolean isAborted() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      return false;<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>    @Override<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    public void stop(String why) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    public boolean isStopped() {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      return false;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span>    @Override<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    public ChoreService getChoreService() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      return null;<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>    @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public ClusterConnection getClusterConnection() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      // TODO Auto-generated method stub<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      return null;<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>  @Test<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  public void testThreadCleanup() throws Exception {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    Configuration conf = UTIL.getConfiguration();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    Server server = new DummyServer();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Path archivedHfileDir =<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    // setup the cleaner<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    // clean up archive directory<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    fs.delete(archivedHfileDir, true);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    fs.mkdirs(archivedHfileDir);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    // create some file to delete<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    fs.createNewFile(new Path(archivedHfileDir, "dfd-dfd"));<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    // launch the chore<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    cleaner.chore();<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    // call cleanup<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    cleaner.cleanup();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    // wait awhile for thread to die<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    Thread.sleep(100);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    for (Thread thread : cleaner.getCleanerThreads()) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      Assert.assertFalse(thread.isAlive());<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>  @Test<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  public void testLargeSmallIsolation() throws Exception {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    Configuration conf = UTIL.getConfiguration();<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    // no cleaner policies = delete all files<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    conf.setInt(HFileCleaner.HFILE_DELETE_THROTTLE_THRESHOLD, 512 * 1024);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    Server server = new DummyServer();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    Path archivedHfileDir =<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    // setup the cleaner<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    // clean up archive directory<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    fs.delete(archivedHfileDir, true);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    fs.mkdirs(archivedHfileDir);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    // necessary set up<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    final int LARGE_FILE_NUM = 5;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    final int SMALL_FILE_NUM = 20;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    createFilesForTesting(LARGE_FILE_NUM, SMALL_FILE_NUM, fs, archivedHfileDir);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    // call cleanup<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    cleaner.chore();<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    Assert.assertEquals(LARGE_FILE_NUM, cleaner.getNumOfDeletedLargeFiles());<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    Assert.assertEquals(SMALL_FILE_NUM, cleaner.getNumOfDeletedSmallFiles());<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>  @Test(timeout = 60 * 1000)<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  public void testOnConfigurationChange() throws Exception {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    // constants<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    final int ORIGINAL_THROTTLE_POINT = 512 * 1024;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    final int ORIGINAL_QUEUE_SIZE = 512;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    final int UPDATE_THROTTLE_POINT = 1024;// small enough to change large/small check<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    final int UPDATE_QUEUE_SIZE = 1024;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    final int LARGE_FILE_NUM = 5;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    final int SMALL_FILE_NUM = 20;<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>    Configuration conf = UTIL.getConfiguration();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    // no cleaner policies = delete all files<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    conf.setInt(HFileCleaner.HFILE_DELETE_THROTTLE_THRESHOLD, ORIGINAL_THROTTLE_POINT);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    conf.setInt(HFileCleaner.LARGE_HFILE_DELETE_QUEUE_SIZE, ORIGINAL_QUEUE_SIZE);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    conf.setInt(HFileCleaner.SMALL_HFILE_DELETE_QUEUE_SIZE, ORIGINAL_QUEUE_SIZE);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    Server server = new DummyServer();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    Path archivedHfileDir =<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>    // setup the cleaner<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    final HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    Assert.assertEquals(ORIGINAL_THROTTLE_POINT, cleaner.getThrottlePoint());<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    Assert.assertEquals(ORIGINAL_QUEUE_SIZE, cleaner.getLargeQueueSize());<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    Assert.assertEquals(ORIGINAL_QUEUE_SIZE, cleaner.getSmallQueueSize());<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>    // clean up archive directory and create files for testing<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    fs.delete(archivedHfileDir, true);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    fs.mkdirs(archivedHfileDir);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    createFilesForTesting(LARGE_FILE_NUM, SMALL_FILE_NUM, fs, archivedHfileDir);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>    // call cleaner, run as daemon to test the interrupt-at-middle case<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    Thread t = new Thread() {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      public void run() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        cleaner.chore();<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    };<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    t.setDaemon(true);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    t.start();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    // let the cleaner run for some while<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    Thread.sleep(20);<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // trigger configuration change<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    Configuration newConf = new Configuration(conf);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    newConf.setInt(HFileCleaner.HFILE_DELETE_THROTTLE_THRESHOLD, UPDATE_THROTTLE_POINT);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    newConf.setInt(HFileCleaner.LARGE_HFILE_DELETE_QUEUE_SIZE, UPDATE_QUEUE_SIZE);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    newConf.setInt(HFileCleaner.SMALL_HFILE_DELETE_QUEUE_SIZE, UPDATE_QUEUE_SIZE);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    cleaner.onConfigurationChange(newConf);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    LOG.debug("File deleted from large queue: " + cleaner.getNumOfDeletedLargeFiles()<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        + "; from small queue: " + cleaner.getNumOfDeletedSmallFiles());<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span>    // check values after change<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(UPDATE_THROTTLE_POINT, cleaner.getThrottlePoint());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    Assert.assertEquals(UPDATE_QUEUE_SIZE, cleaner.getLargeQueueSize());<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(UPDATE_QUEUE_SIZE, cleaner.getSmallQueueSize());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertEquals(2, cleaner.getCleanerThreads().size());<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    // wait until clean done and check<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    t.join();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    LOG.debug("File deleted from large queue: " + cleaner.getNumOfDeletedLargeFiles()<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        + "; from small queue: " + cleaner.getNumOfDeletedSmallFiles());<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    Assert.assertTrue("Should delete more than " + LARGE_FILE_NUM<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        + " files from large queue but actually " + cleaner.getNumOfDeletedLargeFiles(),<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      cleaner.getNumOfDeletedLargeFiles() &gt; LARGE_FILE_NUM);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    Assert.assertTrue("Should delete less than " + SMALL_FILE_NUM<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        + " files from small queue but actually " + cleaner.getNumOfDeletedSmallFiles(),<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      cleaner.getNumOfDeletedSmallFiles() &lt; SMALL_FILE_NUM);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  }<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>  private void createFilesForTesting(int largeFileNum, int smallFileNum, FileSystem fs,<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      Path archivedHfileDir) throws IOException {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    final Random rand = new Random();<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    final byte[] large = new byte[1024 * 1024];<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    for (int i = 0; i &lt; large.length; i++) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      large[i] = (byte) rand.nextInt(128);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    }<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    final byte[] small = new byte[1024];<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    for (int i = 0; i &lt; small.length; i++) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      small[i] = (byte) rand.nextInt(128);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    // create large and small files<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    for (int i = 1; i &lt;= largeFileNum; i++) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      FSDataOutputStream out = fs.create(new Path(archivedHfileDir, "large-file-" + i));<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      out.write(large);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      out.close();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    for (int i = 1; i &lt;= smallFileNum; i++) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      FSDataOutputStream out = fs.create(new Path(archivedHfileDir, "small-file-" + i));<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      out.write(small);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      out.close();<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>}<a name="line.415"></a>
 
 
 


[02/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html
index 5c9f96e..2bb994d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html
@@ -30,245 +30,397 @@
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
 <span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
-<span class="sourceLineNo">025</span><a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.Log;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.commons.logging.LogFactory;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.conf.Configuration;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.fs.FileStatus;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FileSystem;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.Path;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HConstants;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.Server;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.ServerName;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.util.EnvironmentEdge;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.AfterClass;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.BeforeClass;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.junit.Test;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.junit.experimental.categories.Category;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>@Category({MasterTests.class, MediumTests.class})<a name="line.50"></a>
-<span class="sourceLineNo">051</span>public class TestHFileCleaner {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private static final Log LOG = LogFactory.getLog(TestHFileCleaner.class);<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private final static HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  @BeforeClass<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public static void setupCluster() throws Exception {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    // have to use a minidfs cluster because the localfs doesn't modify file times correctly<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    UTIL.startMiniDFSCluster(1);<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>  @AfterClass<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public static void shutdownCluster() throws IOException {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    UTIL.shutdownMiniDFSCluster();<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>  @Test<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  public void testTTLCleaner() throws IOException, InterruptedException {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    Path root = UTIL.getDataTestDirOnTestFS();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    Path file = new Path(root, "file");<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    fs.createNewFile(file);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    long createTime = System.currentTimeMillis();<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    assertTrue("Test file not created!", fs.exists(file));<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    TimeToLiveHFileCleaner cleaner = new TimeToLiveHFileCleaner();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    // update the time info for the file, so the cleaner removes it<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    fs.setTimes(file, createTime - 100, -1);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    Configuration conf = UTIL.getConfiguration();<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 100);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    cleaner.setConf(conf);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertTrue("File not set deletable - check mod time:" + getFileStats(file, fs)<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        + " with create time:" + createTime, cleaner.isFileDeletable(fs.getFileStatus(file)));<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * @param file to check<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @return loggable information about the file<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private String getFileStats(Path file, FileSystem fs) throws IOException {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    FileStatus status = fs.getFileStatus(file);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return "File" + file + ", mtime:" + status.getModificationTime() + ", atime:"<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        + status.getAccessTime();<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>  @Test(timeout = 60 *1000)<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public void testHFileCleaning() throws Exception {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    final EnvironmentEdge originalEdge = EnvironmentEdgeManager.getDelegate();<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    String prefix = "someHFileThatWouldBeAUUID";<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    Configuration conf = UTIL.getConfiguration();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    // set TTL<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    long ttl = 2000;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    conf.set(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      "org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner");<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, ttl);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    Server server = new DummyServer();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    Path archivedHfileDir = new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    FileSystem fs = FileSystem.get(conf);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>    // Create 2 invalid files, 1 "recent" file, 1 very new file and 30 old files<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final long createTime = System.currentTimeMillis();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    fs.delete(archivedHfileDir, true);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    fs.mkdirs(archivedHfileDir);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    // Case 1: 1 invalid file, which should be deleted directly<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    fs.createNewFile(new Path(archivedHfileDir, "dfd-dfd"));<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    // Case 2: 1 "recent" file, not even deletable for the first log cleaner<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    // (TimeToLiveLogCleaner), so we are not going down the chain<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    LOG.debug("Now is: " + createTime);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    for (int i = 1; i &lt; 32; i++) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      // Case 3: old files which would be deletable for the first log cleaner<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      // (TimeToLiveHFileCleaner),<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      Path fileName = new Path(archivedHfileDir, (prefix + "." + (createTime + i)));<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      fs.createNewFile(fileName);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      // set the creation time past ttl to ensure that it gets removed<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      fs.setTimes(fileName, createTime - ttl - 1, -1);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      LOG.debug("Creating " + getFileStats(fileName, fs));<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>    // Case 2: 1 newer file, not even deletable for the first log cleaner<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // (TimeToLiveLogCleaner), so we are not going down the chain<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    Path saved = new Path(archivedHfileDir, prefix + ".00000000000");<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    fs.createNewFile(saved);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    // set creation time within the ttl<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    fs.setTimes(saved, createTime - ttl / 2, -1);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    LOG.debug("Creating " + getFileStats(saved, fs));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    for (FileStatus stat : fs.listStatus(archivedHfileDir)) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      LOG.debug(stat.getPath().toString());<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>    assertEquals(33, fs.listStatus(archivedHfileDir).length);<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>    // set a custom edge manager to handle time checking<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    EnvironmentEdge setTime = new EnvironmentEdge() {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      public long currentTime() {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        return createTime;<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>    EnvironmentEdgeManager.injectEdge(setTime);<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    // run the chore<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    cleaner.chore();<a name="line.152"></a>
+<span class="sourceLineNo">025</span>import java.util.Random;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.commons.logging.Log;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.logging.LogFactory;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.conf.Configuration;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.FileStatus;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.fs.FileSystem;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.fs.Path;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HConstants;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.Server;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.util.EnvironmentEdge;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.AfterClass;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.junit.Assert;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.BeforeClass;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.Test;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.experimental.categories.Category;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>@Category({MasterTests.class, MediumTests.class})<a name="line.53"></a>
+<span class="sourceLineNo">054</span>public class TestHFileCleaner {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static final Log LOG = LogFactory.getLog(TestHFileCleaner.class);<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>  private final static HBaseTestingUtility UTIL = new HBaseTestingUtility();<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  @BeforeClass<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  public static void setupCluster() throws Exception {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    // have to use a minidfs cluster because the localfs doesn't modify file times correctly<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    UTIL.startMiniDFSCluster(1);<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>  @AfterClass<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public static void shutdownCluster() throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    UTIL.shutdownMiniDFSCluster();<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>  @Test<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public void testTTLCleaner() throws IOException, InterruptedException {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    Path root = UTIL.getDataTestDirOnTestFS();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    Path file = new Path(root, "file");<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    fs.createNewFile(file);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    long createTime = System.currentTimeMillis();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    assertTrue("Test file not created!", fs.exists(file));<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    TimeToLiveHFileCleaner cleaner = new TimeToLiveHFileCleaner();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    // update the time info for the file, so the cleaner removes it<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    fs.setTimes(file, createTime - 100, -1);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    Configuration conf = UTIL.getConfiguration();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 100);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    cleaner.setConf(conf);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    assertTrue("File not set deletable - check mod time:" + getFileStats(file, fs)<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        + " with create time:" + createTime, cleaner.isFileDeletable(fs.getFileStatus(file)));<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>   * @param file to check<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @return loggable information about the file<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private String getFileStats(Path file, FileSystem fs) throws IOException {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    FileStatus status = fs.getFileStatus(file);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    return "File" + file + ", mtime:" + status.getModificationTime() + ", atime:"<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        + status.getAccessTime();<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>  @Test(timeout = 60 *1000)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public void testHFileCleaning() throws Exception {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    final EnvironmentEdge originalEdge = EnvironmentEdgeManager.getDelegate();<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    String prefix = "someHFileThatWouldBeAUUID";<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    Configuration conf = UTIL.getConfiguration();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // set TTL<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    long ttl = 2000;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    conf.set(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS,<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      "org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner");<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, ttl);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    Server server = new DummyServer();<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    Path archivedHfileDir = new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    FileSystem fs = FileSystem.get(conf);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // Create 2 invalid files, 1 "recent" file, 1 very new file and 30 old files<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    final long createTime = System.currentTimeMillis();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    fs.delete(archivedHfileDir, true);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    fs.mkdirs(archivedHfileDir);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    // Case 1: 1 invalid file, which should be deleted directly<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    fs.createNewFile(new Path(archivedHfileDir, "dfd-dfd"));<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    // Case 2: 1 "recent" file, not even deletable for the first log cleaner<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // (TimeToLiveLogCleaner), so we are not going down the chain<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    LOG.debug("Now is: " + createTime);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    for (int i = 1; i &lt; 32; i++) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      // Case 3: old files which would be deletable for the first log cleaner<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      // (TimeToLiveHFileCleaner),<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      Path fileName = new Path(archivedHfileDir, (prefix + "." + (createTime + i)));<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      fs.createNewFile(fileName);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      // set the creation time past ttl to ensure that it gets removed<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      fs.setTimes(fileName, createTime - ttl - 1, -1);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      LOG.debug("Creating " + getFileStats(fileName, fs));<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>    // Case 2: 1 newer file, not even deletable for the first log cleaner<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    // (TimeToLiveLogCleaner), so we are not going down the chain<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    Path saved = new Path(archivedHfileDir, prefix + ".00000000000");<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    fs.createNewFile(saved);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    // set creation time within the ttl<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    fs.setTimes(saved, createTime - ttl / 2, -1);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    LOG.debug("Creating " + getFileStats(saved, fs));<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    for (FileStatus stat : fs.listStatus(archivedHfileDir)) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      LOG.debug(stat.getPath().toString());<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>    assertEquals(33, fs.listStatus(archivedHfileDir).length);<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>    // set a custom edge manager to handle time checking<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    EnvironmentEdge setTime = new EnvironmentEdge() {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      public long currentTime() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        return createTime;<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>    EnvironmentEdgeManager.injectEdge(setTime);<a name="line.152"></a>
 <span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    // ensure we only end up with the saved file<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    assertEquals(1, fs.listStatus(archivedHfileDir).length);<a name="line.155"></a>
+<span class="sourceLineNo">154</span>    // run the chore<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    cleaner.chore();<a name="line.155"></a>
 <span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>    for (FileStatus file : fs.listStatus(archivedHfileDir)) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      LOG.debug("Kept hfiles: " + file.getPath().getName());<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>    // reset the edge back to the original edge<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    EnvironmentEdgeManager.injectEdge(originalEdge);<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>  @Test<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void testRemovesEmptyDirectories() throws Exception {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    Configuration conf = UTIL.getConfiguration();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    // no cleaner policies = delete all files<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Server server = new DummyServer();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Path archivedHfileDir = new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    // setup the cleaner<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // make all the directories for archiving files<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    Path table = new Path(archivedHfileDir, "table");<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    Path region = new Path(table, "regionsomthing");<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    Path family = new Path(region, "fam");<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    Path file = new Path(family, "file12345");<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    fs.mkdirs(family);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    if (!fs.exists(family)) throw new RuntimeException("Couldn't create test family:" + family);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    fs.create(file).close();<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    if (!fs.exists(file)) throw new RuntimeException("Test file didn't get created:" + file);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    // run the chore to cleanup the files (and the directories above it)<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    cleaner.chore();<a name="line.188"></a>
+<span class="sourceLineNo">157</span>    // ensure we only end up with the saved file<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    assertEquals(1, fs.listStatus(archivedHfileDir).length);<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>    for (FileStatus file : fs.listStatus(archivedHfileDir)) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      LOG.debug("Kept hfiles: " + file.getPath().getName());<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>    // reset the edge back to the original edge<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    EnvironmentEdgeManager.injectEdge(originalEdge);<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 testRemovesEmptyDirectories() throws Exception {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Configuration conf = UTIL.getConfiguration();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    // no cleaner policies = delete all files<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    Server server = new DummyServer();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    Path archivedHfileDir = new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // setup the cleaner<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>    // make all the directories for archiving files<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    Path table = new Path(archivedHfileDir, "table");<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    Path region = new Path(table, "regionsomthing");<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    Path family = new Path(region, "fam");<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Path file = new Path(family, "file12345");<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    fs.mkdirs(family);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    if (!fs.exists(family)) throw new RuntimeException("Couldn't create test family:" + family);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    fs.create(file).close();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    if (!fs.exists(file)) throw new RuntimeException("Test file didn't get created:" + file);<a name="line.188"></a>
 <span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>    // make sure all the parent directories get removed<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    assertFalse("family directory not removed for empty directory", fs.exists(family));<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    assertFalse("region directory not removed for empty directory", fs.exists(region));<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    assertFalse("table directory not removed for empty directory", fs.exists(table));<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    assertTrue("archive directory", fs.exists(archivedHfileDir));<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>  static class DummyServer implements Server {<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    @Override<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    public Configuration getConfiguration() {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      return UTIL.getConfiguration();<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>    @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      try {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        return new ZooKeeperWatcher(getConfiguration(), "dummy server", this);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      } catch (IOException e) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        e.printStackTrace();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      }<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      return null;<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>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      return null;<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 ClusterConnection getConnection() {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      return null;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    @Override<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      return null;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    }<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>    @Override<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    public ServerName getServerName() {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      return ServerName.valueOf("regionserver,60020,000000");<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>    @Override<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    public void abort(String why, Throwable e) {<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>    @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public boolean isAborted() {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      return false;<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>    @Override<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public void stop(String why) {<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>    public boolean isStopped() {<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>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public ChoreService getChoreService() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return null;<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>    @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    public ClusterConnection getClusterConnection() {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      // TODO Auto-generated method stub<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      return null;<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>}<a name="line.263"></a>
+<span class="sourceLineNo">190</span>    // run the chore to cleanup the files (and the directories above it)<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    cleaner.chore();<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>    // make sure all the parent directories get removed<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    assertFalse("family directory not removed for empty directory", fs.exists(family));<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    assertFalse("region directory not removed for empty directory", fs.exists(region));<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    assertFalse("table directory not removed for empty directory", fs.exists(table));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    assertTrue("archive directory", fs.exists(archivedHfileDir));<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>  static class DummyServer implements Server {<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>    public Configuration getConfiguration() {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      return UTIL.getConfiguration();<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>    @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      try {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        return new ZooKeeperWatcher(getConfiguration(), "dummy server", this);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      } catch (IOException e) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        e.printStackTrace();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      return null;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      return null;<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 ClusterConnection getConnection() {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      return null;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    @Override<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      return null;<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>    @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public ServerName getServerName() {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      return ServerName.valueOf("regionserver,60020,000000");<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>    @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    public void abort(String why, Throwable e) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    public boolean isAborted() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      return false;<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>    @Override<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    public void stop(String why) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    public boolean isStopped() {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      return false;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span>    @Override<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    public ChoreService getChoreService() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      return null;<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>    @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public ClusterConnection getClusterConnection() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      // TODO Auto-generated method stub<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      return null;<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>  @Test<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  public void testThreadCleanup() throws Exception {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    Configuration conf = UTIL.getConfiguration();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    Server server = new DummyServer();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Path archivedHfileDir =<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    // setup the cleaner<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    // clean up archive directory<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    fs.delete(archivedHfileDir, true);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    fs.mkdirs(archivedHfileDir);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    // create some file to delete<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    fs.createNewFile(new Path(archivedHfileDir, "dfd-dfd"));<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    // launch the chore<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    cleaner.chore();<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    // call cleanup<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    cleaner.cleanup();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    // wait awhile for thread to die<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    Thread.sleep(100);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    for (Thread thread : cleaner.getCleanerThreads()) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      Assert.assertFalse(thread.isAlive());<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>  @Test<a name="line.294"></a>
+<span class="sourceLineNo">295</span>  public void testLargeSmallIsolation() throws Exception {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    Configuration conf = UTIL.getConfiguration();<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    // no cleaner policies = delete all files<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    conf.setInt(HFileCleaner.HFILE_DELETE_THROTTLE_THRESHOLD, 512 * 1024);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    Server server = new DummyServer();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    Path archivedHfileDir =<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    // setup the cleaner<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    // clean up archive directory<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    fs.delete(archivedHfileDir, true);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    fs.mkdirs(archivedHfileDir);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    // necessary set up<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    final int LARGE_FILE_NUM = 5;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    final int SMALL_FILE_NUM = 20;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    createFilesForTesting(LARGE_FILE_NUM, SMALL_FILE_NUM, fs, archivedHfileDir);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    // call cleanup<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    cleaner.chore();<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    Assert.assertEquals(LARGE_FILE_NUM, cleaner.getNumOfDeletedLargeFiles());<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    Assert.assertEquals(SMALL_FILE_NUM, cleaner.getNumOfDeletedSmallFiles());<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>  @Test(timeout = 60 * 1000)<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  public void testOnConfigurationChange() throws Exception {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    // constants<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    final int ORIGINAL_THROTTLE_POINT = 512 * 1024;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    final int ORIGINAL_QUEUE_SIZE = 512;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    final int UPDATE_THROTTLE_POINT = 1024;// small enough to change large/small check<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    final int UPDATE_QUEUE_SIZE = 1024;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    final int LARGE_FILE_NUM = 5;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    final int SMALL_FILE_NUM = 20;<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>    Configuration conf = UTIL.getConfiguration();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    // no cleaner policies = delete all files<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    conf.setStrings(HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS, "");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    conf.setInt(HFileCleaner.HFILE_DELETE_THROTTLE_THRESHOLD, ORIGINAL_THROTTLE_POINT);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    conf.setInt(HFileCleaner.LARGE_HFILE_DELETE_QUEUE_SIZE, ORIGINAL_QUEUE_SIZE);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    conf.setInt(HFileCleaner.SMALL_HFILE_DELETE_QUEUE_SIZE, ORIGINAL_QUEUE_SIZE);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    Server server = new DummyServer();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    Path archivedHfileDir =<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        new Path(UTIL.getDataTestDirOnTestFS(), HConstants.HFILE_ARCHIVE_DIRECTORY);<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>    // setup the cleaner<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    FileSystem fs = UTIL.getDFSCluster().getFileSystem();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    final HFileCleaner cleaner = new HFileCleaner(1000, server, conf, fs, archivedHfileDir);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    Assert.assertEquals(ORIGINAL_THROTTLE_POINT, cleaner.getThrottlePoint());<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    Assert.assertEquals(ORIGINAL_QUEUE_SIZE, cleaner.getLargeQueueSize());<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    Assert.assertEquals(ORIGINAL_QUEUE_SIZE, cleaner.getSmallQueueSize());<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>    // clean up archive directory and create files for testing<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    fs.delete(archivedHfileDir, true);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    fs.mkdirs(archivedHfileDir);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    createFilesForTesting(LARGE_FILE_NUM, SMALL_FILE_NUM, fs, archivedHfileDir);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>    // call cleaner, run as daemon to test the interrupt-at-middle case<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    Thread t = new Thread() {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      public void run() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        cleaner.chore();<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    };<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    t.setDaemon(true);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    t.start();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    // let the cleaner run for some while<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    Thread.sleep(20);<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // trigger configuration change<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    Configuration newConf = new Configuration(conf);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    newConf.setInt(HFileCleaner.HFILE_DELETE_THROTTLE_THRESHOLD, UPDATE_THROTTLE_POINT);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    newConf.setInt(HFileCleaner.LARGE_HFILE_DELETE_QUEUE_SIZE, UPDATE_QUEUE_SIZE);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    newConf.setInt(HFileCleaner.SMALL_HFILE_DELETE_QUEUE_SIZE, UPDATE_QUEUE_SIZE);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    cleaner.onConfigurationChange(newConf);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    LOG.debug("File deleted from large queue: " + cleaner.getNumOfDeletedLargeFiles()<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        + "; from small queue: " + cleaner.getNumOfDeletedSmallFiles());<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span>    // check values after change<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(UPDATE_THROTTLE_POINT, cleaner.getThrottlePoint());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    Assert.assertEquals(UPDATE_QUEUE_SIZE, cleaner.getLargeQueueSize());<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(UPDATE_QUEUE_SIZE, cleaner.getSmallQueueSize());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertEquals(2, cleaner.getCleanerThreads().size());<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    // wait until clean done and check<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    t.join();<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    LOG.debug("File deleted from large queue: " + cleaner.getNumOfDeletedLargeFiles()<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        + "; from small queue: " + cleaner.getNumOfDeletedSmallFiles());<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    Assert.assertTrue("Should delete more than " + LARGE_FILE_NUM<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        + " files from large queue but actually " + cleaner.getNumOfDeletedLargeFiles(),<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      cleaner.getNumOfDeletedLargeFiles() &gt; LARGE_FILE_NUM);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    Assert.assertTrue("Should delete less than " + SMALL_FILE_NUM<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        + " files from small queue but actually " + cleaner.getNumOfDeletedSmallFiles(),<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      cleaner.getNumOfDeletedSmallFiles() &lt; SMALL_FILE_NUM);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  }<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>  private void createFilesForTesting(int largeFileNum, int smallFileNum, FileSystem fs,<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      Path archivedHfileDir) throws IOException {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    final Random rand = new Random();<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    final byte[] large = new byte[1024 * 1024];<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    for (int i = 0; i &lt; large.length; i++) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      large[i] = (byte) rand.nextInt(128);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    }<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    final byte[] small = new byte[1024];<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    for (int i = 0; i &lt; small.length; i++) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      small[i] = (byte) rand.nextInt(128);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    // create large and small files<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    for (int i = 1; i &lt;= largeFileNum; i++) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      FSDataOutputStream out = fs.create(new Path(archivedHfileDir, "large-file-" + i));<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      out.write(large);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      out.close();<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    for (int i = 1; i &lt;= smallFileNum; i++) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      FSDataOutputStream out = fs.create(new Path(archivedHfileDir, "small-file-" + i));<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      out.write(small);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      out.close();<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>}<a name="line.415"></a>
 
 
 


[09/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
index c885b3a..ac9ce7d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
@@ -1303,1942 +1303,1943 @@
 <span class="sourceLineNo">1295</span>      throw new RegionServerStoppedException("File system not available");<a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>    }<a name="line.1296"></a>
 <span class="sourceLineNo">1297</span>    if (!regionServer.isOnline()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      throw new ServerNotRunningYetException("Server is not running yet");<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    }<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>  /**<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   * @return list of blocking services and their security info classes that this server supports<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   */<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  protected List&lt;BlockingServiceAndInterface&gt; getServices() {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>    List&lt;BlockingServiceAndInterface&gt; bssi = new ArrayList&lt;&gt;(2);<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      ClientService.newReflectiveBlockingService(this),<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      ClientService.BlockingInterface.class));<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      AdminService.newReflectiveBlockingService(this),<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      AdminService.BlockingInterface.class));<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    return bssi;<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span><a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>  public InetSocketAddress getSocketAddress() {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    return isa;<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  }<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span><a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  @Override<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  public int getPriority(RequestHeader header, Message param, User user) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>    return priority.getPriority(header, param, user);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  }<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  @Override<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>  public long getDeadline(RequestHeader header, Message param) {<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>    return priority.getDeadline(header, param);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>  }<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  /*<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>   * Check if an OOME and, if so, abort immediately to avoid creating more objects.<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>   *<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>   * @param e<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>   *<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>   * @return True if we OOME'd and are aborting.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>   */<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  @Override<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>  public boolean checkOOME(final Throwable e) {<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>    return exitIfOOME(e);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  public static boolean exitIfOOME(final Throwable e ){<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>    boolean stop = false;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    try {<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (e instanceof OutOfMemoryError<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>          || (e.getCause() != null &amp;&amp; e.getCause() instanceof OutOfMemoryError)<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>          || (e.getMessage() != null &amp;&amp; e.getMessage().contains(<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>              "java.lang.OutOfMemoryError"))) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>        stop = true;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>        LOG.fatal("Run out of memory; " + RSRpcServices.class.getSimpleName()<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>          + " will abort itself immediately", e);<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    } finally {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      if (stop) {<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        Runtime.getRuntime().halt(1);<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>    }<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>    return stop;<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>  }<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span><a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>  /**<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>   * Close a region on the region server.<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>   *<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>   * @param controller the RPC controller<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>   * @param request the request<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>   * @throws ServiceException<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>   */<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  @Override<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public CloseRegionResponse closeRegion(final RpcController controller,<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      final CloseRegionRequest request) throws ServiceException {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>    final ServerName sn = (request.hasDestinationServer() ?<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>      ProtobufUtil.toServerName(request.getDestinationServer()) : null);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span><a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    try {<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>      checkOpen();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      if (request.hasServerStartCode()) {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>        // check that we are the same server that this RPC is intended for.<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>        long serverStartCode = request.getServerStartCode();<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>        if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>          throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>              "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>              + regionServer.serverName));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        }<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>      }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>      final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion());<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span><a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>      requestCount.increment();<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>      if (sn == null) {<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        LOG.info("Close " + encodedRegionName + " without moving");<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      } else {<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>        LOG.info("Close " + encodedRegionName + ", moving to " + sn);<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      boolean closed = regionServer.closeRegion(encodedRegionName, false, sn);<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>      CloseRegionResponse.Builder builder = CloseRegionResponse.newBuilder().setClosed(closed);<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>      return builder.build();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    } catch (IOException ie) {<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>      throw new ServiceException(ie);<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    }<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  }<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span><a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>  @Override<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public CloseRegionForSplitOrMergeResponse closeRegionForSplitOrMerge(<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      final RpcController controller,<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      final CloseRegionForSplitOrMergeRequest request) throws ServiceException {<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    try {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      checkOpen();<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span><a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      List&lt;String&gt; encodedRegionNameList = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      for(int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion(i));<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>        // Can be null if we're calling close on a region that's not online<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>        final Region targetRegion = regionServer.getFromOnlineRegions(encodedRegionName);<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>        if ((targetRegion != null) &amp;&amp; (targetRegion.getCoprocessorHost() != null)) {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>          targetRegion.getCoprocessorHost().preClose(false);<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>          encodedRegionNameList.add(encodedRegionName);<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      requestCount.increment();<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>      LOG.info("Close and offline " + encodedRegionNameList + " regions.");<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>      boolean closed = regionServer.closeAndOfflineRegionForSplitOrMerge(encodedRegionNameList);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      CloseRegionForSplitOrMergeResponse.Builder builder =<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>          CloseRegionForSplitOrMergeResponse.newBuilder().setClosed(closed);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      return builder.build();<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    } catch (IOException ie) {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>      throw new ServiceException(ie);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  /**<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>   * Compact a region on the region server.<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>   *<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>   * @param controller the RPC controller<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>   * @param request the request<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>   * @throws ServiceException<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>   */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>  @Override<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>  public CompactRegionResponse compactRegion(final RpcController controller,<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>      final CompactRegionRequest request) throws ServiceException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    try {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      checkOpen();<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      requestCount.increment();<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>      Region region = getRegion(request.getRegion());<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      region.startRegionOperation(Operation.COMPACT_REGION);<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>      LOG.info("Compacting " + region.getRegionInfo().getRegionNameAsString());<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>      boolean major = false;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>      byte [] family = null;<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>      Store store = null;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      if (request.hasFamily()) {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>        family = request.getFamily().toByteArray();<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>        store = region.getStore(family);<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        if (store == null) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>          throw new ServiceException(new DoNotRetryIOException("column family " +<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>              Bytes.toString(family) + " does not exist in region " +<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>              region.getRegionInfo().getRegionNameAsString()));<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>        }<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>      }<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      if (request.hasMajor()) {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>        major = request.getMajor();<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      }<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      if (major) {<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>        if (family != null) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>          store.triggerMajorCompaction();<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>        } else {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>          region.triggerMajorCompaction();<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>      }<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span><a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      String familyLogMsg = (family != null)?" for column family: " + Bytes.toString(family):"";<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      if (LOG.isTraceEnabled()) {<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>        LOG.trace("User-triggered compaction requested for region "<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>          + region.getRegionInfo().getRegionNameAsString() + familyLogMsg);<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>      }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      String log = "User-triggered " + (major ? "major " : "") + "compaction" + familyLogMsg;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>      if(family != null) {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>        regionServer.compactSplitThread.requestCompaction(region, store, log,<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      } else {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        regionServer.compactSplitThread.requestCompaction(region, log,<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>      }<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      return CompactRegionResponse.newBuilder().build();<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    } catch (IOException ie) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      throw new ServiceException(ie);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  }<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Flush a region on the region server.<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   *<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   * @param controller the RPC controller<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * @param request the request<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * @throws ServiceException<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>  @Override<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>  public FlushRegionResponse flushRegion(final RpcController controller,<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>      final FlushRegionRequest request) throws ServiceException {<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    try {<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>      checkOpen();<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>      requestCount.increment();<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>      Region region = getRegion(request.getRegion());<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>      LOG.info("Flushing " + region.getRegionInfo().getRegionNameAsString());<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      boolean shouldFlush = true;<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      if (request.hasIfOlderThanTs()) {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>        shouldFlush = region.getEarliestFlushTimeForAllStores() &lt; request.getIfOlderThanTs();<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      }<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      FlushRegionResponse.Builder builder = FlushRegionResponse.newBuilder();<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      if (shouldFlush) {<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        boolean writeFlushWalMarker =  request.hasWriteFlushWalMarker() ?<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>            request.getWriteFlushWalMarker() : false;<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>        // Go behind the curtain so we can manage writing of the flush WAL marker<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>        HRegion.FlushResultImpl flushResult = (HRegion.FlushResultImpl)<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>            ((HRegion)region).flushcache(true, writeFlushWalMarker);<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        boolean compactionNeeded = flushResult.isCompactionNeeded();<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>        if (compactionNeeded) {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>          regionServer.compactSplitThread.requestSystemCompaction(region,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>            "Compaction through user triggered flush");<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>        }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>        builder.setFlushed(flushResult.isFlushSucceeded());<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>        builder.setWroteFlushWalMarker(flushResult.wroteFlushWalMarker);<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      }<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      builder.setLastFlushTime(region.getEarliestFlushTimeForAllStores());<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      return builder.build();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>    } catch (DroppedSnapshotException ex) {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Cache flush can fail in a few places. If it fails in a critical<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // section, we get a DroppedSnapshotException and a replay of wal<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      // is required. Currently the only way to do this is a restart of<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>      // the server.<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      throw new ServiceException(ex);<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>    } catch (IOException ie) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      throw new ServiceException(ie);<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>    }<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span><a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>  @Override<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  public GetOnlineRegionResponse getOnlineRegion(final RpcController controller,<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      final GetOnlineRegionRequest request) throws ServiceException {<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    try {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      checkOpen();<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      requestCount.increment();<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      Map&lt;String, Region&gt; onlineRegions = regionServer.onlineRegions;<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      List&lt;HRegionInfo&gt; list = new ArrayList&lt;&gt;(onlineRegions.size());<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      for (Region region: onlineRegions.values()) {<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>        list.add(region.getRegionInfo());<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>      }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      Collections.sort(list);<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      return ResponseConverter.buildGetOnlineRegionResponse(list);<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } catch (IOException ie) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new ServiceException(ie);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>  }<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span><a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>  @Override<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  public GetRegionInfoResponse getRegionInfo(final RpcController controller,<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final GetRegionInfoRequest request) throws ServiceException {<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>    try {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      checkOpen();<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      requestCount.increment();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      Region region = getRegion(request.getRegion());<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      HRegionInfo info = region.getRegionInfo();<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      builder.setRegionInfo(HRegionInfo.convert(info));<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      if (request.hasCompactionState() &amp;&amp; request.getCompactionState()) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>        builder.setCompactionState(region.getCompactionState());<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      builder.setIsRecovering(region.isRecovering());<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      return builder.build();<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    } catch (IOException ie) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      throw new ServiceException(ie);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>  }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span><a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  @Override<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  public GetRegionLoadResponse getRegionLoad(RpcController controller,<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      GetRegionLoadRequest request) throws ServiceException {<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span><a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    List&lt;Region&gt; regions;<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    if (request.hasTableName()) {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>      regions = regionServer.getOnlineRegions(tableName);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>    } else {<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>      regions = regionServer.getOnlineRegions();<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    List&lt;RegionLoad&gt; rLoads = new ArrayList&lt;&gt;(regions.size());<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>    RegionLoad.Builder regionLoadBuilder = ClusterStatusProtos.RegionLoad.newBuilder();<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    RegionSpecifier.Builder regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span><a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    try {<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>      for (Region region : regions) {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>        rLoads.add(regionServer.createRegionLoad(region, regionLoadBuilder, regionSpecifier));<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      }<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>    } catch (IOException e) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>      throw new ServiceException(e);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>    }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>    GetRegionLoadResponse.Builder builder = GetRegionLoadResponse.newBuilder();<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>    builder.addAllRegionLoads(rLoads);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>    return builder.build();<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>  }<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span><a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>  /**<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>   * Get some information of the region server.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>   *<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>   * @param controller the RPC controller<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>   * @param request the request<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>   * @throws ServiceException<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>   */<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>  @Override<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>  public GetServerInfoResponse getServerInfo(final RpcController controller,<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      final GetServerInfoRequest request) throws ServiceException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    try {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      checkOpen();<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    } catch (IOException ie) {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>      throw new ServiceException(ie);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    requestCount.increment();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>    int infoPort = regionServer.infoServer != null ? regionServer.infoServer.getPort() : -1;<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>    return ResponseConverter.buildGetServerInfoResponse(regionServer.serverName, infoPort);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  }<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span><a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>  @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>  public GetStoreFileResponse getStoreFile(final RpcController controller,<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      final GetStoreFileRequest request) throws ServiceException {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    try {<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      checkOpen();<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      Region region = getRegion(request.getRegion());<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>      requestCount.increment();<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>      Set&lt;byte[]&gt; columnFamilies;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      if (request.getFamilyCount() == 0) {<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        columnFamilies = region.getTableDesc().getFamiliesKeys();<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>      } else {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>        columnFamilies = new TreeSet&lt;&gt;(Bytes.BYTES_RAWCOMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        for (ByteString cf: request.getFamilyList()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>          columnFamilies.add(cf.toByteArray());<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        }<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>      }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      int nCF = columnFamilies.size();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>      List&lt;String&gt;  fileList = region.getStoreFileList(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>        columnFamilies.toArray(new byte[nCF][]));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      GetStoreFileResponse.Builder builder = GetStoreFileResponse.newBuilder();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      builder.addAllStoreFile(fileList);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      return builder.build();<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    } catch (IOException ie) {<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      throw new ServiceException(ie);<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>    }<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  }<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span><a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>  /**<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>   * Open asynchronously a region or a set of regions on the region server.<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>   *<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>   * The opening is coordinated by ZooKeeper, and this method requires the znode to be created<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>   *  before being called. As a consequence, this method should be called only from the master.<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>   * &lt;p&gt;<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>   * Different manages states for the region are:<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>   * &lt;/p&gt;&lt;ul&gt;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>   *  &lt;li&gt;region not opened: the region opening will start asynchronously.&lt;/li&gt;<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>   *  &lt;li&gt;a close is already in progress: this is considered as an error.&lt;/li&gt;<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>   *  &lt;li&gt;an open is already in progress: this new open request will be ignored. This is important<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>   *  because the Master can do multiple requests if it crashes.&lt;/li&gt;<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>   *  &lt;li&gt;the region is already opened:  this new open request will be ignored.&lt;/li&gt;<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>   *  &lt;/ul&gt;<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * &lt;p&gt;<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * Bulk assign: If there are more than 1 region to open, it will be considered as a bulk assign.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   * For a single region opening, errors are sent through a ServiceException. For bulk assign,<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>   * errors are put in the response as FAILED_OPENING.<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>   * &lt;/p&gt;<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>   * @param controller the RPC controller<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>   * @param request the request<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>   * @throws ServiceException<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>   */<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>  @Override<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  public OpenRegionResponse openRegion(final RpcController controller,<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>      final OpenRegionRequest request) throws ServiceException {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    requestCount.increment();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    if (request.hasServerStartCode()) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>      // check that we are the same server that this RPC is intended for.<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>      long serverStartCode = request.getServerStartCode();<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>      if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>            "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>            + regionServer.serverName));<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    }<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    OpenRegionResponse.Builder builder = OpenRegionResponse.newBuilder();<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    final int regionCount = request.getOpenInfoCount();<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    final Map&lt;TableName, HTableDescriptor&gt; htds = new HashMap&lt;&gt;(regionCount);<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>    final boolean isBulkAssign = regionCount &gt; 1;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    try {<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      checkOpen();<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    } catch (IOException ie) {<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      TableName tableName = null;<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>      if (regionCount == 1) {<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>        RegionInfo ri = request.getOpenInfo(0).getRegion();<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>        if (ri != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>          tableName = ProtobufUtil.toTableName(ri.getTableName());<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        }<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (!TableName.META_TABLE_NAME.equals(tableName)) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        throw new ServiceException(ie);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      // We are assigning meta, wait a little for regionserver to finish initialization.<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>      int timeout = regionServer.conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT) &gt;&gt; 2; // Quarter of RPC timeout<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      long endTime = System.currentTimeMillis() + timeout;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      synchronized (regionServer.online) {<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>        try {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>          while (System.currentTimeMillis() &lt;= endTime<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              &amp;&amp; !regionServer.isStopped() &amp;&amp; !regionServer.isOnline()) {<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            regionServer.online.wait(regionServer.msgInterval);<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>          }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>          checkOpen();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>        } catch (InterruptedException t) {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          Thread.currentThread().interrupt();<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>          throw new ServiceException(t);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>        } catch (IOException e) {<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>          throw new ServiceException(e);<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        }<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>      }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    }<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span><a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    long masterSystemTime = request.hasMasterSystemTime() ? request.getMasterSystemTime() : -1;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span><a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>    for (RegionOpenInfo regionOpenInfo : request.getOpenInfoList()) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      final HRegionInfo region = HRegionInfo.convert(regionOpenInfo.getRegion());<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>      HTableDescriptor htd;<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      try {<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        String encodedName = region.getEncodedName();<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>        byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>        final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        if (onlineRegion != null) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          // The region is already online. This should not happen any more.<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>          String error = "Received OPEN for the region:"<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>            + region.getRegionNameAsString() + ", which is already online";<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>          regionServer.abort(error);<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          throw new IOException(error);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>        }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>        LOG.info("Open " + region.getRegionNameAsString());<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span><a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>        final Boolean previous = regionServer.regionsInTransitionInRS.putIfAbsent(<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>          encodedNameBytes, Boolean.TRUE);<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (Boolean.FALSE.equals(previous)) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          if (regionServer.getFromOnlineRegions(encodedName) != null) {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>            // There is a close in progress. This should not happen any more.<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>            String error = "Received OPEN for the region:"<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>              + region.getRegionNameAsString() + ", which we are already trying to CLOSE";<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>            regionServer.abort(error);<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>            throw new IOException(error);<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          }<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>          regionServer.regionsInTransitionInRS.put(encodedNameBytes, Boolean.TRUE);<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        }<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span><a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        if (Boolean.TRUE.equals(previous)) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>          // An open is in progress. This is supported, but let's log this.<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>          LOG.info("Receiving OPEN for the region:" +<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            region.getRegionNameAsString() + ", which we are already trying to OPEN"<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>              + " - ignoring this new request for this region.");<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>        }<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span><a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        // We are opening this region. If it moves back and forth for whatever reason, we don't<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        // want to keep returning the stale moved record while we are opening/if we close again.<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        regionServer.removeFromMovedRegions(region.getEncodedName());<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>        if (previous == null || !previous.booleanValue()) {<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          // check if the region to be opened is marked in recovering state in ZK<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>          if (ZKSplitLog.isRegionMarkedRecoveringInZK(regionServer.getZooKeeper(),<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>              region.getEncodedName())) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            // Check if current region open is for distributedLogReplay. This check is to support<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>            // rolling restart/upgrade where we want to Master/RS see same configuration<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>            if (!regionOpenInfo.hasOpenForDistributedLogReplay()<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>                  || regionOpenInfo.getOpenForDistributedLogReplay()) {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>              regionServer.recoveringRegions.put(region.getEncodedName(), null);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>            } else {<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>              // Remove stale recovery region from ZK when we open region not for recovering which<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>              // could happen when turn distributedLogReplay off from on.<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              List&lt;String&gt; tmpRegions = new ArrayList&lt;&gt;();<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>              tmpRegions.add(region.getEncodedName());<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>              ZKSplitLog.deleteRecoveringRegionZNodes(regionServer.getZooKeeper(),<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>                tmpRegions);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>            }<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          }<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>          htd = htds.get(region.getTable());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>          if (htd == null) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>            htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            htds.put(region.getTable(), htd);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>          }<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>          if (htd == null) {<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>            throw new IOException("Missing table descriptor for " + region.getEncodedName());<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>          }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>          // If there is no action in progress, we can submit a specific handler.<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          // Need to pass the expected version in the constructor.<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>          if (region.isMetaRegion()) {<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>            regionServer.service.submit(new OpenMetaHandler(<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>              regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>          } else {<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>            if (regionOpenInfo.getFavoredNodesCount() &gt; 0) {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>              regionServer.updateRegionFavoredNodesMapping(region.getEncodedName(),<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>                  regionOpenInfo.getFavoredNodesList());<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>            }<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>            if (htd.getPriority() &gt;= HConstants.ADMIN_QOS || region.getTable().isSystemTable()) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>              regionServer.service.submit(new OpenPriorityRegionHandler(<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>            } else {<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>              regionServer.service.submit(new OpenRegionHandler(<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>            }<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          }<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span><a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>        builder.addOpeningState(RegionOpeningState.OPENED);<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>      } catch (KeeperException zooKeeperEx) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>        LOG.error("Can't retrieve recovering state from zookeeper", zooKeeperEx);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>        throw new ServiceException(zooKeeperEx);<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>      } catch (IOException ie) {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>        LOG.warn("Failed opening region " + region.getRegionNameAsString(), ie);<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>        if (isBulkAssign) {<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>          builder.addOpeningState(RegionOpeningState.FAILED_OPENING);<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>        } else {<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>          throw new ServiceException(ie);<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>        }<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>      }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    return builder.build();<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  }<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span><a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>  /**<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   *  Wamrmup a region on this server.<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>   *<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>   * This method should only be called by Master. It synchrnously opens the region and<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>   * closes the region bringing the most important pages in cache.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>   * &lt;p&gt;<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>   *<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>   * @param controller the RPC controller<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>   * @param request the request<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>   * @throws ServiceException<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>   */<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>  @Override<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>  public WarmupRegionResponse warmupRegion(final RpcController controller,<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>      final WarmupRegionRequest request) throws ServiceException {<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    RegionInfo regionInfo = request.getRegionInfo();<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>    final HRegionInfo region = HRegionInfo.convert(regionInfo);<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>    HTableDescriptor htd;<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    WarmupRegionResponse response = WarmupRegionResponse.getDefaultInstance();<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span><a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>    try {<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>      checkOpen();<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>      String encodedName = region.getEncodedName();<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>      byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>      final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span><a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>      if (onlineRegion != null) {<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        LOG.info("Region already online. Skipping warming up " + region);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>        return response;<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>      }<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span><a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      if (LOG.isDebugEnabled()) {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        LOG.debug("Warming up Region " + region.getRegionNameAsString());<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span><a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>      htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>      if (regionServer.getRegionsInTransitionInRS().containsKey(encodedNameBytes)) {<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>        LOG.info("Region is in transition. Skipping warmup " + region);<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>        return response;<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span><a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>      HRegion.warmupHRegion(region, htd, regionServer.getWAL(region),<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>          regionServer.getConfiguration(), regionServer, null);<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span><a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    } catch (IOException ie) {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>      LOG.error("Failed warming up region " + region.getRegionNameAsString(), ie);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>      throw new ServiceException(ie);<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>    }<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span><a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    return response;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>  }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>  /**<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>   * Replay the given changes when distributedLogReplay WAL edits from a failed RS. The guarantee is<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>   * that the given mutations will be durable on the receiving RS if this method returns without any<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>   * exception.<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>   * @param controller the RPC controller<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>   * @param request the request<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>   * @throws ServiceException<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>   */<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  @Override<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  @QosPriority(priority = HConstants.REPLAY_QOS)<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  public ReplicateWALEntryResponse replay(final RpcController controller,<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    CellScanner cells = ((HBaseRpcController) controller).cellScanner();<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    try {<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>      checkOpen();<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>      List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      if (entries == null || entries.isEmpty()) {<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>        // empty input<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>      }<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>      ByteString regionName = entries.get(0).getKey().getEncodedRegionName();<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>      Region region = regionServer.getRegionByEncodedName(regionName.toStringUtf8());<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>      RegionCoprocessorHost coprocessorHost =<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>          ServerRegionReplicaUtil.isDefaultReplica(region.getRegionInfo())<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>            ? region.getCoprocessorHost()<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>            : null; // do not invoke coprocessors if this is a secondary region replica<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>      List&lt;Pair&lt;WALKey, WALEdit&gt;&gt; walEntries = new ArrayList&lt;&gt;();<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span><a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      // Skip adding the edits to WAL if this is a secondary region replica<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>      boolean isPrimary = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>      Durability durability = isPrimary ? Durability.USE_DEFAULT : Durability.SKIP_WAL;<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span><a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>      for (WALEntry entry : entries) {<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>        if (!regionName.equals(entry.getKey().getEncodedRegionName())) {<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>          throw new NotServingRegionException("Replay request contains entries from multiple " +<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>              "regions. First region:" + regionName.toStringUtf8() + " , other region:"<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>              + entry.getKey().getEncodedRegionName());<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        }<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        if (regionServer.nonceManager != null &amp;&amp; isPrimary) {<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>          long nonceGroup = entry.getKey().hasNonceGroup()<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>            ? entry.getKey().getNonceGroup() : HConstants.NO_NONCE;<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>          long nonce = entry.getKey().hasNonce() ? entry.getKey().getNonce() : HConstants.NO_NONCE;<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>          regionServer.nonceManager.reportOperationFromWal(<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>              nonceGroup,<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>              nonce,<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>              entry.getKey().getWriteTime());<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>        }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>        Pair&lt;WALKey, WALEdit&gt; walEntry = (coprocessorHost == null) ? null : new Pair&lt;&gt;();<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>        List&lt;WALSplitter.MutationReplay&gt; edits = WALSplitter.getMutationsFromWALEntry(entry,<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          cells, walEntry, durability);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        if (coprocessorHost != null) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>          // Start coprocessor replay here. The coprocessor is for each WALEdit instead of a<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>          // KeyValue.<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          if (coprocessorHost.preWALRestore(region.getRegionInfo(), walEntry.getFirst(),<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>            walEntry.getSecond())) {<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>            // if bypass this log entry, ignore it ...<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>            continue;<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>          }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>          walEntries.add(walEntry);<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>        }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>        if(edits!=null &amp;&amp; !edits.isEmpty()) {<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>          long replaySeqId = (entry.getKey().hasOrigSequenceNumber()) ?<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>            entry.getKey().getOrigSequenceNumber() : entry.getKey().getLogSequenceNumber();<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>          OperationStatus[] result = doReplayBatchOp(region, edits, replaySeqId);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>          // check if it's a partial success<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>          for (int i = 0; result != null &amp;&amp; i &lt; result.length; i++) {<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>            if (result[i] != OperationStatus.SUCCESS) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>              throw new IOException(result[i].getExceptionMsg());<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>            }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>          }<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>        }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      }<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span><a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      //sync wal at the end because ASYNC_WAL is used above<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      WAL wal = getWAL(region);<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      if (wal != null) {<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>        wal.sync();<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      }<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      if (coprocessorHost != null) {<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>        for (Pair&lt;WALKey, WALEdit&gt; entry : walEntries) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>          coprocessorHost.postWALRestore(region.getRegionInfo(), entry.getFirst(),<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>            entry.getSecond());<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        }<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      }<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    } catch (IOException ie) {<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      throw new ServiceException(ie);<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    } finally {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>        regionServer.metricsRegionServer.updateReplay(<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      }<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>  }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span><a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>  WAL getWAL(Region region) {<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    return ((HRegion)region).getWAL();<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>  }<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  /**<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>   * Replicate WAL entries on the region server.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>   *<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>   * @param controller the RPC controller<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>   * @param request the request<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>   * @throws ServiceException<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>   */<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>  @Override<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>  @QosPriority(priority=HConstants.REPLICATION_QOS)<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>  public ReplicateWALEntryResponse replicateWALEntry(final RpcController controller,<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    try {<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>      checkOpen();<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>      if (regionServer.replicationSinkHandler != null) {<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        requestCount.increment();<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>        List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>        CellScanner cellScanner = ((HBaseRpcController)controller).cellScanner();<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        regionServer.getRegionServerCoprocessorHost().preReplicateLogEntries(entries, cellScanner);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>        regionServer.replicationSinkHandler.replicateLogEntries(entries, cellScanner,<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>          request.getReplicationClusterId(), request.getSourceBaseNamespaceDirPath(),<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>          request.getSourceHFileArchiveDirPath());<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        regionServer.getRegionServerCoprocessorHost().postReplicateLogEntries(entries, cellScanner);<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>      } else {<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        throw new ServiceException("Replication services are not initialized yet");<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>      }<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>    } catch (IOException ie) {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>      throw new ServiceException(ie);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>    }<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>  }<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>  /**<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>   * Roll the WAL writer of the region server.<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>   * @param controller the RPC controller<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>   * @param request the request<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>   * @throws ServiceException<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>   */<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>  @Override<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  public RollWALWriterResponse rollWALWriter(final RpcController controller,<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>      final RollWALWriterRequest request) throws ServiceException {<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>    try {<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>      checkOpen();<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>      requestCount.increment();<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>      regionServer.getRegionServerCoprocessorHost().preRollWALWriterRequest();<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      regionServer.walRoller.requestRollAll();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>      regionServer.getRegionServerCoprocessorHost().postRollWALWriterRequest();<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>      RollWALWriterResponse.Builder builder = RollWALWriterResponse.newBuilder();<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>      return builder.build();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    } catch (IOException ie) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new ServiceException(ie);<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>    }<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>  }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>  /**<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>   * Split a region on the region server.<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>   *<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>   * @param controller the RPC controller<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>   * @param request the request<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>   * @throws ServiceException<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>   */<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>  @Override<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>  public SplitRegionResponse splitRegion(final RpcController controller,<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>      final SplitRegionRequest request) throws ServiceException {<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>    try {<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>      checkOpen();<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>      requestCount.increment();<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>      Region region = getRegion(request.getRegion());<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>      region.startRegionOperation(Operation.SPLIT_REGION);<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>      if (region.getRegionInfo().getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>        throw new IOException("Can't split replicas directly. "<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>            + "Replicas are auto-split when their primary is split.");<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>      }<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>      LOG.info("Splitting " + region.getRegionInfo().getRegionNameAsString());<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      region.flush(true);<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>      byte[] splitPoint = null;<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>      if (request.hasSplitPoint()) {<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>        splitPoint = request.getSplitPoint().toByteArray();<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      }<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>      ((HRegion)region).forceSplit(splitPoint);<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>      regionServer.compactSplitThread.requestSplit(region, ((HRegion)region).checkSplit(),<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>        RpcServer.getRequestUser());<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>      return SplitRegionResponse.newBuilder().build();<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    } catch (DroppedSnapshotException ex) {<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      throw new ServiceException(ex);<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>    } catch (IOException ie) {<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>      throw new ServiceException(ie);<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>    }<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>  }<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span><a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>  /**<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>   * Stop the region server.<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>   *<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>   * @param controller the RPC controller<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>   * @param request the request<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>   * @throws ServiceException<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>   */<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>  @Override<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>  public StopServerResponse stopServer(final RpcController controller,<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>      final StopServerRequest request) throws ServiceException {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>    requestCount.increment();<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    String reason = request.getReason();<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    regionServer.stop(reason);<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>    return StopServerResponse.newBuilder().build();<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>  }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>  @Override<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>  public UpdateFavoredNodesResponse updateFavoredNodes(RpcController controller,<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      UpdateFavoredNodesRequest request) throws ServiceException {<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    List&lt;UpdateFavoredNodesRequest.RegionUpdateInfo&gt; openInfoList = request.getUpdateInfoList();<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>    UpdateFavoredNodesResponse.Builder respBuilder = UpdateFavoredNodesResponse.newBuilder();<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>    for (UpdateFavoredNodesRequest.RegionUpdateInfo regionUpdateInfo : openInfoList) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>      HRegionInfo hri = HRegionInfo.convert(regionUpdateInfo.getRegion());<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>      if (regionUpdateInfo.getFavoredNodesCount() &gt; 0) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>        regionServer.updateRegionFavoredNodesMapping(hri.getEncodedName(),<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>          regionUpdateInfo.getFavoredNodesList());<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>      }<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>    }<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>    respBuilder.setResponse(openInfoList.size());<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>    return respBuilder.build();<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>  }<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span><a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>  /**<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>   * Atomically bulk load several HFiles into an open region<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>   * @return true if successful, false is failed but recoverably (no action)<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>   * @throws ServiceException if failed unrecoverably<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>   */<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>  @Override<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>  public BulkLoadHFileResponse bulkLoadHFile(final RpcController controller,<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>      final BulkLoadHFileRequest request) throws ServiceException {<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>    long start = EnvironmentEdgeManager.currentTime();<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    try {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>      checkOpen();<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      requestCount.increment();<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      Region region = getRegion(request.getRegion());<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      boolean bypass = false;<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      boolean loaded = false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>      Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span><a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (!request.hasBulkToken()) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        // Old style bulk load. This will not be supported in future releases<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        List&lt;Pair&lt;byte[], String&gt;&gt; familyPaths = new ArrayList&lt;&gt;(request.getFamilyPathCount());<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>        for (FamilyPath familyPath : request.getFamilyPathList()) {<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>          familyPaths.add(new Pair&lt;&gt;(familyPath.getFamily().toByteArray(), familyPath.getPath()));<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>        }<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>        if (region.getCoprocessorHost() != null) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>          bypass = region.getCoprocessorHost().preBulkLoadHFile(familyPaths);<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>        }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>        try {<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>          if (!bypass) {<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>            map = region.bulkLoadHFiles(familyPaths, request.getAssignSeqNum(), null,<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>                request.getCopyFile());<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>            if (map != null) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>              loaded = true;<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>            }<a name="line.21

<TRUNCATED>

[11/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
index c885b3a..ac9ce7d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
@@ -1303,1942 +1303,1943 @@
 <span class="sourceLineNo">1295</span>      throw new RegionServerStoppedException("File system not available");<a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>    }<a name="line.1296"></a>
 <span class="sourceLineNo">1297</span>    if (!regionServer.isOnline()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      throw new ServerNotRunningYetException("Server is not running yet");<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    }<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>  /**<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   * @return list of blocking services and their security info classes that this server supports<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   */<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  protected List&lt;BlockingServiceAndInterface&gt; getServices() {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>    List&lt;BlockingServiceAndInterface&gt; bssi = new ArrayList&lt;&gt;(2);<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      ClientService.newReflectiveBlockingService(this),<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      ClientService.BlockingInterface.class));<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      AdminService.newReflectiveBlockingService(this),<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      AdminService.BlockingInterface.class));<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    return bssi;<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span><a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>  public InetSocketAddress getSocketAddress() {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    return isa;<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  }<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span><a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  @Override<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  public int getPriority(RequestHeader header, Message param, User user) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>    return priority.getPriority(header, param, user);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  }<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  @Override<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>  public long getDeadline(RequestHeader header, Message param) {<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>    return priority.getDeadline(header, param);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>  }<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  /*<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>   * Check if an OOME and, if so, abort immediately to avoid creating more objects.<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>   *<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>   * @param e<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>   *<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>   * @return True if we OOME'd and are aborting.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>   */<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  @Override<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>  public boolean checkOOME(final Throwable e) {<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>    return exitIfOOME(e);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  public static boolean exitIfOOME(final Throwable e ){<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>    boolean stop = false;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    try {<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (e instanceof OutOfMemoryError<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>          || (e.getCause() != null &amp;&amp; e.getCause() instanceof OutOfMemoryError)<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>          || (e.getMessage() != null &amp;&amp; e.getMessage().contains(<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>              "java.lang.OutOfMemoryError"))) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>        stop = true;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>        LOG.fatal("Run out of memory; " + RSRpcServices.class.getSimpleName()<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>          + " will abort itself immediately", e);<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    } finally {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      if (stop) {<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        Runtime.getRuntime().halt(1);<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>    }<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>    return stop;<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>  }<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span><a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>  /**<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>   * Close a region on the region server.<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>   *<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>   * @param controller the RPC controller<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>   * @param request the request<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>   * @throws ServiceException<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>   */<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  @Override<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public CloseRegionResponse closeRegion(final RpcController controller,<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      final CloseRegionRequest request) throws ServiceException {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>    final ServerName sn = (request.hasDestinationServer() ?<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>      ProtobufUtil.toServerName(request.getDestinationServer()) : null);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span><a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    try {<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>      checkOpen();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      if (request.hasServerStartCode()) {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>        // check that we are the same server that this RPC is intended for.<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>        long serverStartCode = request.getServerStartCode();<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>        if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>          throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>              "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>              + regionServer.serverName));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        }<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>      }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>      final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion());<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span><a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>      requestCount.increment();<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>      if (sn == null) {<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        LOG.info("Close " + encodedRegionName + " without moving");<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      } else {<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>        LOG.info("Close " + encodedRegionName + ", moving to " + sn);<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      boolean closed = regionServer.closeRegion(encodedRegionName, false, sn);<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>      CloseRegionResponse.Builder builder = CloseRegionResponse.newBuilder().setClosed(closed);<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>      return builder.build();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    } catch (IOException ie) {<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>      throw new ServiceException(ie);<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    }<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  }<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span><a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>  @Override<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public CloseRegionForSplitOrMergeResponse closeRegionForSplitOrMerge(<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      final RpcController controller,<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      final CloseRegionForSplitOrMergeRequest request) throws ServiceException {<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    try {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      checkOpen();<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span><a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      List&lt;String&gt; encodedRegionNameList = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      for(int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion(i));<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>        // Can be null if we're calling close on a region that's not online<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>        final Region targetRegion = regionServer.getFromOnlineRegions(encodedRegionName);<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>        if ((targetRegion != null) &amp;&amp; (targetRegion.getCoprocessorHost() != null)) {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>          targetRegion.getCoprocessorHost().preClose(false);<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>          encodedRegionNameList.add(encodedRegionName);<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      requestCount.increment();<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>      LOG.info("Close and offline " + encodedRegionNameList + " regions.");<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>      boolean closed = regionServer.closeAndOfflineRegionForSplitOrMerge(encodedRegionNameList);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      CloseRegionForSplitOrMergeResponse.Builder builder =<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>          CloseRegionForSplitOrMergeResponse.newBuilder().setClosed(closed);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      return builder.build();<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    } catch (IOException ie) {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>      throw new ServiceException(ie);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  /**<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>   * Compact a region on the region server.<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>   *<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>   * @param controller the RPC controller<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>   * @param request the request<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>   * @throws ServiceException<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>   */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>  @Override<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>  public CompactRegionResponse compactRegion(final RpcController controller,<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>      final CompactRegionRequest request) throws ServiceException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    try {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      checkOpen();<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      requestCount.increment();<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>      Region region = getRegion(request.getRegion());<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      region.startRegionOperation(Operation.COMPACT_REGION);<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>      LOG.info("Compacting " + region.getRegionInfo().getRegionNameAsString());<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>      boolean major = false;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>      byte [] family = null;<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>      Store store = null;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      if (request.hasFamily()) {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>        family = request.getFamily().toByteArray();<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>        store = region.getStore(family);<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        if (store == null) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>          throw new ServiceException(new DoNotRetryIOException("column family " +<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>              Bytes.toString(family) + " does not exist in region " +<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>              region.getRegionInfo().getRegionNameAsString()));<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>        }<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>      }<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      if (request.hasMajor()) {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>        major = request.getMajor();<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      }<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      if (major) {<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>        if (family != null) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>          store.triggerMajorCompaction();<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>        } else {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>          region.triggerMajorCompaction();<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>      }<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span><a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      String familyLogMsg = (family != null)?" for column family: " + Bytes.toString(family):"";<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      if (LOG.isTraceEnabled()) {<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>        LOG.trace("User-triggered compaction requested for region "<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>          + region.getRegionInfo().getRegionNameAsString() + familyLogMsg);<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>      }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      String log = "User-triggered " + (major ? "major " : "") + "compaction" + familyLogMsg;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>      if(family != null) {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>        regionServer.compactSplitThread.requestCompaction(region, store, log,<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      } else {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        regionServer.compactSplitThread.requestCompaction(region, log,<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>      }<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      return CompactRegionResponse.newBuilder().build();<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    } catch (IOException ie) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      throw new ServiceException(ie);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  }<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Flush a region on the region server.<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   *<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   * @param controller the RPC controller<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * @param request the request<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * @throws ServiceException<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>  @Override<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>  public FlushRegionResponse flushRegion(final RpcController controller,<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>      final FlushRegionRequest request) throws ServiceException {<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    try {<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>      checkOpen();<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>      requestCount.increment();<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>      Region region = getRegion(request.getRegion());<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>      LOG.info("Flushing " + region.getRegionInfo().getRegionNameAsString());<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      boolean shouldFlush = true;<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      if (request.hasIfOlderThanTs()) {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>        shouldFlush = region.getEarliestFlushTimeForAllStores() &lt; request.getIfOlderThanTs();<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      }<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      FlushRegionResponse.Builder builder = FlushRegionResponse.newBuilder();<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      if (shouldFlush) {<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        boolean writeFlushWalMarker =  request.hasWriteFlushWalMarker() ?<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>            request.getWriteFlushWalMarker() : false;<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>        // Go behind the curtain so we can manage writing of the flush WAL marker<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>        HRegion.FlushResultImpl flushResult = (HRegion.FlushResultImpl)<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>            ((HRegion)region).flushcache(true, writeFlushWalMarker);<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        boolean compactionNeeded = flushResult.isCompactionNeeded();<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>        if (compactionNeeded) {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>          regionServer.compactSplitThread.requestSystemCompaction(region,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>            "Compaction through user triggered flush");<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>        }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>        builder.setFlushed(flushResult.isFlushSucceeded());<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>        builder.setWroteFlushWalMarker(flushResult.wroteFlushWalMarker);<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      }<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      builder.setLastFlushTime(region.getEarliestFlushTimeForAllStores());<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      return builder.build();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>    } catch (DroppedSnapshotException ex) {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Cache flush can fail in a few places. If it fails in a critical<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // section, we get a DroppedSnapshotException and a replay of wal<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      // is required. Currently the only way to do this is a restart of<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>      // the server.<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      throw new ServiceException(ex);<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>    } catch (IOException ie) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      throw new ServiceException(ie);<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>    }<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span><a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>  @Override<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  public GetOnlineRegionResponse getOnlineRegion(final RpcController controller,<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      final GetOnlineRegionRequest request) throws ServiceException {<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    try {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      checkOpen();<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      requestCount.increment();<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      Map&lt;String, Region&gt; onlineRegions = regionServer.onlineRegions;<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      List&lt;HRegionInfo&gt; list = new ArrayList&lt;&gt;(onlineRegions.size());<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      for (Region region: onlineRegions.values()) {<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>        list.add(region.getRegionInfo());<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>      }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      Collections.sort(list);<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      return ResponseConverter.buildGetOnlineRegionResponse(list);<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } catch (IOException ie) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new ServiceException(ie);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>  }<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span><a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>  @Override<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  public GetRegionInfoResponse getRegionInfo(final RpcController controller,<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final GetRegionInfoRequest request) throws ServiceException {<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>    try {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      checkOpen();<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      requestCount.increment();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      Region region = getRegion(request.getRegion());<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      HRegionInfo info = region.getRegionInfo();<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      builder.setRegionInfo(HRegionInfo.convert(info));<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      if (request.hasCompactionState() &amp;&amp; request.getCompactionState()) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>        builder.setCompactionState(region.getCompactionState());<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      builder.setIsRecovering(region.isRecovering());<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      return builder.build();<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    } catch (IOException ie) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      throw new ServiceException(ie);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>  }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span><a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  @Override<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  public GetRegionLoadResponse getRegionLoad(RpcController controller,<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      GetRegionLoadRequest request) throws ServiceException {<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span><a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    List&lt;Region&gt; regions;<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    if (request.hasTableName()) {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>      regions = regionServer.getOnlineRegions(tableName);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>    } else {<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>      regions = regionServer.getOnlineRegions();<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    List&lt;RegionLoad&gt; rLoads = new ArrayList&lt;&gt;(regions.size());<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>    RegionLoad.Builder regionLoadBuilder = ClusterStatusProtos.RegionLoad.newBuilder();<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    RegionSpecifier.Builder regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span><a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    try {<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>      for (Region region : regions) {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>        rLoads.add(regionServer.createRegionLoad(region, regionLoadBuilder, regionSpecifier));<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      }<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>    } catch (IOException e) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>      throw new ServiceException(e);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>    }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>    GetRegionLoadResponse.Builder builder = GetRegionLoadResponse.newBuilder();<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>    builder.addAllRegionLoads(rLoads);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>    return builder.build();<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>  }<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span><a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>  /**<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>   * Get some information of the region server.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>   *<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>   * @param controller the RPC controller<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>   * @param request the request<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>   * @throws ServiceException<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>   */<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>  @Override<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>  public GetServerInfoResponse getServerInfo(final RpcController controller,<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      final GetServerInfoRequest request) throws ServiceException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    try {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      checkOpen();<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    } catch (IOException ie) {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>      throw new ServiceException(ie);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    requestCount.increment();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>    int infoPort = regionServer.infoServer != null ? regionServer.infoServer.getPort() : -1;<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>    return ResponseConverter.buildGetServerInfoResponse(regionServer.serverName, infoPort);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  }<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span><a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>  @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>  public GetStoreFileResponse getStoreFile(final RpcController controller,<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      final GetStoreFileRequest request) throws ServiceException {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    try {<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      checkOpen();<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      Region region = getRegion(request.getRegion());<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>      requestCount.increment();<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>      Set&lt;byte[]&gt; columnFamilies;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      if (request.getFamilyCount() == 0) {<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        columnFamilies = region.getTableDesc().getFamiliesKeys();<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>      } else {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>        columnFamilies = new TreeSet&lt;&gt;(Bytes.BYTES_RAWCOMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        for (ByteString cf: request.getFamilyList()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>          columnFamilies.add(cf.toByteArray());<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        }<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>      }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      int nCF = columnFamilies.size();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>      List&lt;String&gt;  fileList = region.getStoreFileList(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>        columnFamilies.toArray(new byte[nCF][]));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      GetStoreFileResponse.Builder builder = GetStoreFileResponse.newBuilder();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      builder.addAllStoreFile(fileList);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      return builder.build();<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    } catch (IOException ie) {<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      throw new ServiceException(ie);<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>    }<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  }<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span><a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>  /**<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>   * Open asynchronously a region or a set of regions on the region server.<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>   *<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>   * The opening is coordinated by ZooKeeper, and this method requires the znode to be created<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>   *  before being called. As a consequence, this method should be called only from the master.<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>   * &lt;p&gt;<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>   * Different manages states for the region are:<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>   * &lt;/p&gt;&lt;ul&gt;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>   *  &lt;li&gt;region not opened: the region opening will start asynchronously.&lt;/li&gt;<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>   *  &lt;li&gt;a close is already in progress: this is considered as an error.&lt;/li&gt;<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>   *  &lt;li&gt;an open is already in progress: this new open request will be ignored. This is important<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>   *  because the Master can do multiple requests if it crashes.&lt;/li&gt;<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>   *  &lt;li&gt;the region is already opened:  this new open request will be ignored.&lt;/li&gt;<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>   *  &lt;/ul&gt;<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * &lt;p&gt;<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * Bulk assign: If there are more than 1 region to open, it will be considered as a bulk assign.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   * For a single region opening, errors are sent through a ServiceException. For bulk assign,<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>   * errors are put in the response as FAILED_OPENING.<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>   * &lt;/p&gt;<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>   * @param controller the RPC controller<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>   * @param request the request<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>   * @throws ServiceException<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>   */<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>  @Override<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  public OpenRegionResponse openRegion(final RpcController controller,<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>      final OpenRegionRequest request) throws ServiceException {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    requestCount.increment();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    if (request.hasServerStartCode()) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>      // check that we are the same server that this RPC is intended for.<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>      long serverStartCode = request.getServerStartCode();<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>      if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>            "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>            + regionServer.serverName));<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    }<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    OpenRegionResponse.Builder builder = OpenRegionResponse.newBuilder();<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    final int regionCount = request.getOpenInfoCount();<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    final Map&lt;TableName, HTableDescriptor&gt; htds = new HashMap&lt;&gt;(regionCount);<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>    final boolean isBulkAssign = regionCount &gt; 1;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    try {<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      checkOpen();<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    } catch (IOException ie) {<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      TableName tableName = null;<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>      if (regionCount == 1) {<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>        RegionInfo ri = request.getOpenInfo(0).getRegion();<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>        if (ri != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>          tableName = ProtobufUtil.toTableName(ri.getTableName());<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        }<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (!TableName.META_TABLE_NAME.equals(tableName)) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        throw new ServiceException(ie);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      // We are assigning meta, wait a little for regionserver to finish initialization.<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>      int timeout = regionServer.conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT) &gt;&gt; 2; // Quarter of RPC timeout<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      long endTime = System.currentTimeMillis() + timeout;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      synchronized (regionServer.online) {<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>        try {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>          while (System.currentTimeMillis() &lt;= endTime<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              &amp;&amp; !regionServer.isStopped() &amp;&amp; !regionServer.isOnline()) {<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            regionServer.online.wait(regionServer.msgInterval);<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>          }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>          checkOpen();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>        } catch (InterruptedException t) {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          Thread.currentThread().interrupt();<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>          throw new ServiceException(t);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>        } catch (IOException e) {<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>          throw new ServiceException(e);<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        }<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>      }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    }<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span><a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    long masterSystemTime = request.hasMasterSystemTime() ? request.getMasterSystemTime() : -1;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span><a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>    for (RegionOpenInfo regionOpenInfo : request.getOpenInfoList()) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      final HRegionInfo region = HRegionInfo.convert(regionOpenInfo.getRegion());<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>      HTableDescriptor htd;<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      try {<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        String encodedName = region.getEncodedName();<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>        byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>        final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        if (onlineRegion != null) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          // The region is already online. This should not happen any more.<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>          String error = "Received OPEN for the region:"<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>            + region.getRegionNameAsString() + ", which is already online";<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>          regionServer.abort(error);<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          throw new IOException(error);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>        }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>        LOG.info("Open " + region.getRegionNameAsString());<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span><a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>        final Boolean previous = regionServer.regionsInTransitionInRS.putIfAbsent(<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>          encodedNameBytes, Boolean.TRUE);<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (Boolean.FALSE.equals(previous)) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          if (regionServer.getFromOnlineRegions(encodedName) != null) {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>            // There is a close in progress. This should not happen any more.<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>            String error = "Received OPEN for the region:"<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>              + region.getRegionNameAsString() + ", which we are already trying to CLOSE";<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>            regionServer.abort(error);<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>            throw new IOException(error);<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          }<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>          regionServer.regionsInTransitionInRS.put(encodedNameBytes, Boolean.TRUE);<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        }<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span><a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        if (Boolean.TRUE.equals(previous)) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>          // An open is in progress. This is supported, but let's log this.<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>          LOG.info("Receiving OPEN for the region:" +<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            region.getRegionNameAsString() + ", which we are already trying to OPEN"<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>              + " - ignoring this new request for this region.");<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>        }<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span><a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        // We are opening this region. If it moves back and forth for whatever reason, we don't<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        // want to keep returning the stale moved record while we are opening/if we close again.<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        regionServer.removeFromMovedRegions(region.getEncodedName());<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>        if (previous == null || !previous.booleanValue()) {<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          // check if the region to be opened is marked in recovering state in ZK<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>          if (ZKSplitLog.isRegionMarkedRecoveringInZK(regionServer.getZooKeeper(),<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>              region.getEncodedName())) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            // Check if current region open is for distributedLogReplay. This check is to support<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>            // rolling restart/upgrade where we want to Master/RS see same configuration<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>            if (!regionOpenInfo.hasOpenForDistributedLogReplay()<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>                  || regionOpenInfo.getOpenForDistributedLogReplay()) {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>              regionServer.recoveringRegions.put(region.getEncodedName(), null);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>            } else {<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>              // Remove stale recovery region from ZK when we open region not for recovering which<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>              // could happen when turn distributedLogReplay off from on.<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              List&lt;String&gt; tmpRegions = new ArrayList&lt;&gt;();<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>              tmpRegions.add(region.getEncodedName());<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>              ZKSplitLog.deleteRecoveringRegionZNodes(regionServer.getZooKeeper(),<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>                tmpRegions);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>            }<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          }<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>          htd = htds.get(region.getTable());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>          if (htd == null) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>            htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            htds.put(region.getTable(), htd);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>          }<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>          if (htd == null) {<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>            throw new IOException("Missing table descriptor for " + region.getEncodedName());<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>          }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>          // If there is no action in progress, we can submit a specific handler.<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          // Need to pass the expected version in the constructor.<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>          if (region.isMetaRegion()) {<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>            regionServer.service.submit(new OpenMetaHandler(<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>              regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>          } else {<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>            if (regionOpenInfo.getFavoredNodesCount() &gt; 0) {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>              regionServer.updateRegionFavoredNodesMapping(region.getEncodedName(),<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>                  regionOpenInfo.getFavoredNodesList());<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>            }<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>            if (htd.getPriority() &gt;= HConstants.ADMIN_QOS || region.getTable().isSystemTable()) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>              regionServer.service.submit(new OpenPriorityRegionHandler(<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>            } else {<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>              regionServer.service.submit(new OpenRegionHandler(<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>            }<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          }<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span><a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>        builder.addOpeningState(RegionOpeningState.OPENED);<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>      } catch (KeeperException zooKeeperEx) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>        LOG.error("Can't retrieve recovering state from zookeeper", zooKeeperEx);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>        throw new ServiceException(zooKeeperEx);<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>      } catch (IOException ie) {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>        LOG.warn("Failed opening region " + region.getRegionNameAsString(), ie);<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>        if (isBulkAssign) {<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>          builder.addOpeningState(RegionOpeningState.FAILED_OPENING);<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>        } else {<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>          throw new ServiceException(ie);<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>        }<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>      }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    return builder.build();<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  }<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span><a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>  /**<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   *  Wamrmup a region on this server.<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>   *<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>   * This method should only be called by Master. It synchrnously opens the region and<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>   * closes the region bringing the most important pages in cache.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>   * &lt;p&gt;<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>   *<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>   * @param controller the RPC controller<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>   * @param request the request<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>   * @throws ServiceException<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>   */<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>  @Override<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>  public WarmupRegionResponse warmupRegion(final RpcController controller,<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>      final WarmupRegionRequest request) throws ServiceException {<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    RegionInfo regionInfo = request.getRegionInfo();<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>    final HRegionInfo region = HRegionInfo.convert(regionInfo);<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>    HTableDescriptor htd;<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    WarmupRegionResponse response = WarmupRegionResponse.getDefaultInstance();<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span><a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>    try {<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>      checkOpen();<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>      String encodedName = region.getEncodedName();<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>      byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>      final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span><a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>      if (onlineRegion != null) {<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        LOG.info("Region already online. Skipping warming up " + region);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>        return response;<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>      }<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span><a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      if (LOG.isDebugEnabled()) {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        LOG.debug("Warming up Region " + region.getRegionNameAsString());<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span><a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>      htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>      if (regionServer.getRegionsInTransitionInRS().containsKey(encodedNameBytes)) {<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>        LOG.info("Region is in transition. Skipping warmup " + region);<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>        return response;<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span><a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>      HRegion.warmupHRegion(region, htd, regionServer.getWAL(region),<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>          regionServer.getConfiguration(), regionServer, null);<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span><a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    } catch (IOException ie) {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>      LOG.error("Failed warming up region " + region.getRegionNameAsString(), ie);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>      throw new ServiceException(ie);<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>    }<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span><a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    return response;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>  }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>  /**<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>   * Replay the given changes when distributedLogReplay WAL edits from a failed RS. The guarantee is<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>   * that the given mutations will be durable on the receiving RS if this method returns without any<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>   * exception.<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>   * @param controller the RPC controller<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>   * @param request the request<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>   * @throws ServiceException<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>   */<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  @Override<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  @QosPriority(priority = HConstants.REPLAY_QOS)<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  public ReplicateWALEntryResponse replay(final RpcController controller,<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    CellScanner cells = ((HBaseRpcController) controller).cellScanner();<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    try {<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>      checkOpen();<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>      List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      if (entries == null || entries.isEmpty()) {<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>        // empty input<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>      }<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>      ByteString regionName = entries.get(0).getKey().getEncodedRegionName();<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>      Region region = regionServer.getRegionByEncodedName(regionName.toStringUtf8());<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>      RegionCoprocessorHost coprocessorHost =<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>          ServerRegionReplicaUtil.isDefaultReplica(region.getRegionInfo())<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>            ? region.getCoprocessorHost()<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>            : null; // do not invoke coprocessors if this is a secondary region replica<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>      List&lt;Pair&lt;WALKey, WALEdit&gt;&gt; walEntries = new ArrayList&lt;&gt;();<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span><a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      // Skip adding the edits to WAL if this is a secondary region replica<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>      boolean isPrimary = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>      Durability durability = isPrimary ? Durability.USE_DEFAULT : Durability.SKIP_WAL;<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span><a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>      for (WALEntry entry : entries) {<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>        if (!regionName.equals(entry.getKey().getEncodedRegionName())) {<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>          throw new NotServingRegionException("Replay request contains entries from multiple " +<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>              "regions. First region:" + regionName.toStringUtf8() + " , other region:"<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>              + entry.getKey().getEncodedRegionName());<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        }<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        if (regionServer.nonceManager != null &amp;&amp; isPrimary) {<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>          long nonceGroup = entry.getKey().hasNonceGroup()<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>            ? entry.getKey().getNonceGroup() : HConstants.NO_NONCE;<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>          long nonce = entry.getKey().hasNonce() ? entry.getKey().getNonce() : HConstants.NO_NONCE;<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>          regionServer.nonceManager.reportOperationFromWal(<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>              nonceGroup,<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>              nonce,<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>              entry.getKey().getWriteTime());<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>        }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>        Pair&lt;WALKey, WALEdit&gt; walEntry = (coprocessorHost == null) ? null : new Pair&lt;&gt;();<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>        List&lt;WALSplitter.MutationReplay&gt; edits = WALSplitter.getMutationsFromWALEntry(entry,<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          cells, walEntry, durability);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        if (coprocessorHost != null) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>          // Start coprocessor replay here. The coprocessor is for each WALEdit instead of a<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>          // KeyValue.<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          if (coprocessorHost.preWALRestore(region.getRegionInfo(), walEntry.getFirst(),<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>            walEntry.getSecond())) {<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>            // if bypass this log entry, ignore it ...<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>            continue;<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>          }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>          walEntries.add(walEntry);<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>        }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>        if(edits!=null &amp;&amp; !edits.isEmpty()) {<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>          long replaySeqId = (entry.getKey().hasOrigSequenceNumber()) ?<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>            entry.getKey().getOrigSequenceNumber() : entry.getKey().getLogSequenceNumber();<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>          OperationStatus[] result = doReplayBatchOp(region, edits, replaySeqId);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>          // check if it's a partial success<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>          for (int i = 0; result != null &amp;&amp; i &lt; result.length; i++) {<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>            if (result[i] != OperationStatus.SUCCESS) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>              throw new IOException(result[i].getExceptionMsg());<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>            }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>          }<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>        }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      }<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span><a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      //sync wal at the end because ASYNC_WAL is used above<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      WAL wal = getWAL(region);<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      if (wal != null) {<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>        wal.sync();<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      }<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      if (coprocessorHost != null) {<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>        for (Pair&lt;WALKey, WALEdit&gt; entry : walEntries) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>          coprocessorHost.postWALRestore(region.getRegionInfo(), entry.getFirst(),<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>            entry.getSecond());<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        }<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      }<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    } catch (IOException ie) {<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      throw new ServiceException(ie);<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    } finally {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>        regionServer.metricsRegionServer.updateReplay(<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      }<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>  }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span><a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>  WAL getWAL(Region region) {<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    return ((HRegion)region).getWAL();<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>  }<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  /**<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>   * Replicate WAL entries on the region server.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>   *<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>   * @param controller the RPC controller<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>   * @param request the request<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>   * @throws ServiceException<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>   */<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>  @Override<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>  @QosPriority(priority=HConstants.REPLICATION_QOS)<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>  public ReplicateWALEntryResponse replicateWALEntry(final RpcController controller,<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    try {<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>      checkOpen();<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>      if (regionServer.replicationSinkHandler != null) {<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        requestCount.increment();<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>        List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>        CellScanner cellScanner = ((HBaseRpcController)controller).cellScanner();<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        regionServer.getRegionServerCoprocessorHost().preReplicateLogEntries(entries, cellScanner);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>        regionServer.replicationSinkHandler.replicateLogEntries(entries, cellScanner,<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>          request.getReplicationClusterId(), request.getSourceBaseNamespaceDirPath(),<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>          request.getSourceHFileArchiveDirPath());<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        regionServer.getRegionServerCoprocessorHost().postReplicateLogEntries(entries, cellScanner);<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>      } else {<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        throw new ServiceException("Replication services are not initialized yet");<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>      }<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>    } catch (IOException ie) {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>      throw new ServiceException(ie);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>    }<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>  }<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>  /**<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>   * Roll the WAL writer of the region server.<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>   * @param controller the RPC controller<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>   * @param request the request<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>   * @throws ServiceException<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>   */<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>  @Override<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  public RollWALWriterResponse rollWALWriter(final RpcController controller,<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>      final RollWALWriterRequest request) throws ServiceException {<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>    try {<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>      checkOpen();<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>      requestCount.increment();<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>      regionServer.getRegionServerCoprocessorHost().preRollWALWriterRequest();<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      regionServer.walRoller.requestRollAll();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>      regionServer.getRegionServerCoprocessorHost().postRollWALWriterRequest();<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>      RollWALWriterResponse.Builder builder = RollWALWriterResponse.newBuilder();<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>      return builder.build();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    } catch (IOException ie) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new ServiceException(ie);<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>    }<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>  }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>  /**<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>   * Split a region on the region server.<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>   *<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>   * @param controller the RPC controller<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>   * @param request the request<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>   * @throws ServiceException<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>   */<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>  @Override<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>  public SplitRegionResponse splitRegion(final RpcController controller,<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>      final SplitRegionRequest request) throws ServiceException {<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>    try {<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>      checkOpen();<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>      requestCount.increment();<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>      Region region = getRegion(request.getRegion());<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>      region.startRegionOperation(Operation.SPLIT_REGION);<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>      if (region.getRegionInfo().getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>        throw new IOException("Can't split replicas directly. "<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>            + "Replicas are auto-split when their primary is split.");<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>      }<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>      LOG.info("Splitting " + region.getRegionInfo().getRegionNameAsString());<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      region.flush(true);<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>      byte[] splitPoint = null;<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>      if (request.hasSplitPoint()) {<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>        splitPoint = request.getSplitPoint().toByteArray();<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      }<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>      ((HRegion)region).forceSplit(splitPoint);<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>      regionServer.compactSplitThread.requestSplit(region, ((HRegion)region).checkSplit(),<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>        RpcServer.getRequestUser());<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>      return SplitRegionResponse.newBuilder().build();<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    } catch (DroppedSnapshotException ex) {<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      throw new ServiceException(ex);<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>    } catch (IOException ie) {<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>      throw new ServiceException(ie);<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>    }<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>  }<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span><a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>  /**<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>   * Stop the region server.<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>   *<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>   * @param controller the RPC controller<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>   * @param request the request<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>   * @throws ServiceException<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>   */<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>  @Override<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>  public StopServerResponse stopServer(final RpcController controller,<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>      final StopServerRequest request) throws ServiceException {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>    requestCount.increment();<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    String reason = request.getReason();<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    regionServer.stop(reason);<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>    return StopServerResponse.newBuilder().build();<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>  }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>  @Override<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>  public UpdateFavoredNodesResponse updateFavoredNodes(RpcController controller,<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      UpdateFavoredNodesRequest request) throws ServiceException {<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    List&lt;UpdateFavoredNodesRequest.RegionUpdateInfo&gt; openInfoList = request.getUpdateInfoList();<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>    UpdateFavoredNodesResponse.Builder respBuilder = UpdateFavoredNodesResponse.newBuilder();<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>    for (UpdateFavoredNodesRequest.RegionUpdateInfo regionUpdateInfo : openInfoList) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>      HRegionInfo hri = HRegionInfo.convert(regionUpdateInfo.getRegion());<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>      if (regionUpdateInfo.getFavoredNodesCount() &gt; 0) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>        regionServer.updateRegionFavoredNodesMapping(hri.getEncodedName(),<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>          regionUpdateInfo.getFavoredNodesList());<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>      }<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>    }<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>    respBuilder.setResponse(openInfoList.size());<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>    return respBuilder.build();<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>  }<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span><a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>  /**<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>   * Atomically bulk load several HFiles into an open region<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>   * @return true if successful, false is failed but recoverably (no action)<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>   * @throws ServiceException if failed unrecoverably<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>   */<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>  @Override<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>  public BulkLoadHFileResponse bulkLoadHFile(final RpcController controller,<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>      final BulkLoadHFileRequest request) throws ServiceException {<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>    long start = EnvironmentEdgeManager.currentTime();<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    try {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>      checkOpen();<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      requestCount.increment();<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      Region region = getRegion(request.getRegion());<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      boolean bypass = false;<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      boolean loaded = false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>      Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span><a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (!request.hasBulkToken()) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        // Old style bulk load. This will not be supported in future releases<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        List&lt;Pair&lt;byte[], String&gt;&gt; familyPaths = new ArrayList&lt;&gt;(request.getFamilyPathCount());<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>        for (FamilyPath familyPath : request.getFamilyPathList()) {<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>          familyPaths.add(new Pair&lt;&gt;(familyPath.getFamily().toByteArray(), familyPath.getPath()));<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>        }<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>        if (region.getCoprocessorHost() != null) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>          bypass = region.getCoprocessorHost().preBulkLoadHFile(familyPaths);<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>        }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>        try {<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>          if (!bypass) {<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>            map = region.bulkLoadHFiles(familyPaths, request.getAssignSeqNum(), null,<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>                request.getCopyFile());<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>            if (map != null) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>              loaded = true;<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>            }<a name="line.2148"></a>
-

<TRUNCATED>

[16/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
index 99a5bb1..98b388b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
@@ -893,2422 +893,2423 @@
 <span class="sourceLineNo">885</span>    status.markComplete("Initialization successful");<a name="line.885"></a>
 <span class="sourceLineNo">886</span>    LOG.info("Master has completed initialization");<a name="line.886"></a>
 <span class="sourceLineNo">887</span>    configurationManager.registerObserver(this.balancer);<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>    // Set master as 'initialized'.<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    setInitialized(true);<a name="line.890"></a>
-<span class="sourceLineNo">891</span><a name="line.891"></a>
-<span class="sourceLineNo">892</span>    status.setStatus("Assign meta replicas");<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    metaBootstrap.assignMetaReplicas();<a name="line.893"></a>
-<span class="sourceLineNo">894</span><a name="line.894"></a>
-<span class="sourceLineNo">895</span>    status.setStatus("Starting quota manager");<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    initQuotaManager();<a name="line.896"></a>
-<span class="sourceLineNo">897</span><a name="line.897"></a>
-<span class="sourceLineNo">898</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    // master initialization. See HBASE-5916.<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.901"></a>
-<span class="sourceLineNo">902</span><a name="line.902"></a>
-<span class="sourceLineNo">903</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    status.setStatus("Checking ZNode ACLs");<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.905"></a>
-<span class="sourceLineNo">906</span><a name="line.906"></a>
-<span class="sourceLineNo">907</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    initMobCleaner();<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (this.cpHost != null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      // don't let cp initialization errors kill the master<a name="line.912"></a>
-<span class="sourceLineNo">913</span>      try {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>        this.cpHost.postStartMaster();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>      } catch (IOException ioe) {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>    zombieDetector.interrupt();<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  }<a name="line.921"></a>
-<span class="sourceLineNo">922</span><a name="line.922"></a>
-<span class="sourceLineNo">923</span>  private void initMobCleaner() {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    this.expiredMobFileCleanerChore = new ExpiredMobFileCleanerChore(this);<a name="line.924"></a>
-<span class="sourceLineNo">925</span>    getChoreService().scheduleChore(expiredMobFileCleanerChore);<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>    int mobCompactionPeriod = conf.getInt(MobConstants.MOB_COMPACTION_CHORE_PERIOD,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        MobConstants.DEFAULT_MOB_COMPACTION_CHORE_PERIOD);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    if (mobCompactionPeriod &gt; 0) {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      this.mobCompactChore = new MobCompactionChore(this, mobCompactionPeriod);<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      getChoreService().scheduleChore(mobCompactChore);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    } else {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      LOG<a name="line.933"></a>
-<span class="sourceLineNo">934</span>        .info("The period is " + mobCompactionPeriod + " seconds, MobCompactionChore is disabled");<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.mobCompactThread = new MasterMobCompactionThread(this);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>  }<a name="line.937"></a>
-<span class="sourceLineNo">938</span><a name="line.938"></a>
-<span class="sourceLineNo">939</span>  /**<a name="line.939"></a>
-<span class="sourceLineNo">940</span>   * Create a {@link MasterMetaBootstrap} instance.<a name="line.940"></a>
-<span class="sourceLineNo">941</span>   */<a name="line.941"></a>
-<span class="sourceLineNo">942</span>  MasterMetaBootstrap createMetaBootstrap(final HMaster master, final MonitoredTask status) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    // w/ a mocked up MasterMetaBootstrap.<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    return new MasterMetaBootstrap(master, status);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>  }<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>   * Create a {@link ServerManager} instance.<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   */<a name="line.950"></a>
-<span class="sourceLineNo">951</span>  ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    // w/ a mocked up ServerManager.<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    setupClusterConnection();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    return new ServerManager(master);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>  }<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      throws IOException, InterruptedException {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    this.serverManager.waitForRegionServers(status);<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    // Check zk for region servers that are up but didn't register<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (ServerName sn: this.regionServerTracker.getOnlineServers()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // The isServerOnline check is opportunistic, correctness is handled inside<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!this.serverManager.isServerOnline(sn)<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          &amp;&amp; serverManager.checkAndRecordNewServer(sn, ServerLoad.EMPTY_SERVERLOAD)) {<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        LOG.info("Registered server found up in zk but who has not yet reported in: " + sn);<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<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><a name="line.970"></a>
-<span class="sourceLineNo">971</span>  void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    this.clusterSchemaService = new ClusterSchemaServiceImpl(this);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    this.clusterSchemaService.startAndWait();<a name="line.973"></a>
-<span class="sourceLineNo">974</span>    if (!this.clusterSchemaService.isRunning()) throw new HBaseIOException("Failed start");<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  }<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>  void initQuotaManager() throws IOException {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    MasterQuotaManager quotaManager = new MasterQuotaManager(this);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.assignmentManager.setRegionStateListener((RegionStateListener)quotaManager);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    quotaManager.start();<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    this.quotaManager = quotaManager;<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>  boolean isCatalogJanitorEnabled() {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    return catalogJanitorChore != null ?<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      catalogJanitorChore.getEnabled() : false;<a name="line.986"></a>
-<span class="sourceLineNo">987</span>  }<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>  boolean isCleanerChoreEnabled() {<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    boolean hfileCleanerFlag = true, logCleanerFlag = true;<a name="line.990"></a>
-<span class="sourceLineNo">991</span><a name="line.991"></a>
-<span class="sourceLineNo">992</span>    if (hfileCleaner != null) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>      hfileCleanerFlag = hfileCleaner.getEnabled();<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>    if (logCleaner != null) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      logCleanerFlag = logCleaner.getEnabled();<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    }<a name="line.998"></a>
-<span class="sourceLineNo">999</span><a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    return (hfileCleanerFlag &amp;&amp; logCleanerFlag);<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  }<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span><a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>  @Override<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  public TableDescriptors getTableDescriptors() {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    return this.tableDescriptors;<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>  }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span><a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  @Override<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  public ServerManager getServerManager() {<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    return this.serverManager;<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>  }<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span><a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  @Override<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    return this.fileSystemManager;<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  }<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span><a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>  @Override<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>  public MasterWalManager getMasterWalManager() {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>    return this.walManager;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>  }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span><a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  @Override<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  public TableStateManager getTableStateManager() {<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    return tableStateManager;<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  }<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span><a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>  /*<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   * Start up all services. If any of these threads gets an unhandled exception<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * then they just die with a logged message.  This should be fine because<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   * in general, we do not expect the master to get such unhandled exceptions<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>   *  as OOMEs; it should be lightly loaded. See what HRegionServer does if<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   *  need to install an unexpected exception handler.<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   */<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>  private void startServiceThreads() throws IOException{<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   // Start the executor service pools<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   this.service.startExecutorService(ExecutorType.MASTER_OPEN_REGION,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>      conf.getInt("hbase.master.executor.openregion.threads", 5));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>   this.service.startExecutorService(ExecutorType.MASTER_CLOSE_REGION,<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      conf.getInt("hbase.master.executor.closeregion.threads", 5));<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   this.service.startExecutorService(ExecutorType.MASTER_SERVER_OPERATIONS,<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      conf.getInt("hbase.master.executor.serverops.threads", 5));<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   this.service.startExecutorService(ExecutorType.MASTER_META_SERVER_OPERATIONS,<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      conf.getInt("hbase.master.executor.meta.serverops.threads", 5));<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>   this.service.startExecutorService(ExecutorType.M_LOG_REPLAY_OPS,<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      conf.getInt("hbase.master.executor.logreplayops.threads", 10));<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span><a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>   // We depend on there being only one instance of this executor running<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>   // at a time.  To do concurrency, would need fencing of enable/disable of<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>   // tables.<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>   // Any time changing this maxThreads to &gt; 1, pls see the comment at<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>   // AccessController#postCompletedCreateTableAction<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>   this.service.startExecutorService(ExecutorType.MASTER_TABLE_OPERATIONS, 1);<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   startProcedureExecutor();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span><a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>   // Start log cleaner thread<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>   int cleanerInterval = conf.getInt("hbase.master.cleaner.interval", 60 * 1000);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>   this.logCleaner =<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      new LogCleaner(cleanerInterval,<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>         this, conf, getMasterWalManager().getFileSystem(),<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>         getMasterWalManager().getOldLogDir());<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    getChoreService().scheduleChore(logCleaner);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>   //start the hfile archive cleaner thread<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    Path archiveDir = HFileArchiveUtil.getArchivePath(conf);<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    Map&lt;String, Object&gt; params = new HashMap&lt;&gt;();<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    params.put(MASTER, this);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    this.hfileCleaner = new HFileCleaner(cleanerInterval, this, conf, getMasterFileSystem()<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        .getFileSystem(), archiveDir, params);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>    getChoreService().scheduleChore(hfileCleaner);<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>    serviceStarted = true;<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    if (LOG.isTraceEnabled()) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      LOG.trace("Started service threads");<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    // Start replication zk node cleaner<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    if (conf.getClass("hbase.region.replica.replication.replicationQueues.class",<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      ReplicationFactory.defaultReplicationQueueClass) == ReplicationQueuesZKImpl.class) {<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>      try {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>        replicationZKNodeCleanerChore = new ReplicationZKNodeCleanerChore(this, cleanerInterval,<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>            new ReplicationZKNodeCleaner(this.conf, this.getZooKeeper(), this));<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>        getChoreService().scheduleChore(replicationZKNodeCleanerChore);<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>      } catch (Exception e) {<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        LOG.error("start replicationZKNodeCleanerChore failed", e);<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>    replicationMetaCleaner = new ReplicationMetaCleaner(this, this, cleanerInterval);<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    getChoreService().scheduleChore(replicationMetaCleaner);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>  }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  @Override<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  protected void sendShutdownInterrupt() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    super.sendShutdownInterrupt();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    stopProcedureExecutor();<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span><a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>  @Override<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  protected void stopServiceThreads() {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    if (masterJettyServer != null) {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      LOG.info("Stopping master jetty server");<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>      try {<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        masterJettyServer.stop();<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      } catch (Exception e) {<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        LOG.error("Failed to stop master jetty server", e);<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>    super.stopServiceThreads();<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    stopChores();<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span><a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    // Wait for all the remaining region servers to report in IFF we were<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    // running a cluster shutdown AND we were NOT aborting.<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    if (!isAborted() &amp;&amp; this.serverManager != null &amp;&amp;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>        this.serverManager.isClusterShutdown()) {<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      this.serverManager.letRegionServersShutdown();<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>    }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    if (LOG.isDebugEnabled()) {<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      LOG.debug("Stopping service threads");<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    }<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Clean up and close up shop<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    if (this.logCleaner != null) this.logCleaner.cancel(true);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    if (this.hfileCleaner != null) this.hfileCleaner.cancel(true);<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.replicationZKNodeCleanerChore != null) this.replicationZKNodeCleanerChore.cancel(true);<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>    if (this.replicationMetaCleaner != null) this.replicationMetaCleaner.cancel(true);<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>    if (this.quotaManager != null) this.quotaManager.stop();<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    if (this.activeMasterManager != null) this.activeMasterManager.stop();<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>    if (this.serverManager != null) this.serverManager.stop();<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    if (this.assignmentManager != null) this.assignmentManager.stop();<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>    if (this.walManager != null) this.walManager.stop();<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>    if (this.fileSystemManager != null) this.fileSystemManager.stop();<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>    if (this.mpmHost != null) this.mpmHost.stop("server shutting down.");<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>  private void startProcedureExecutor() throws IOException {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    final MasterProcedureEnv procEnv = new MasterProcedureEnv(this);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    final Path walDir = new Path(FSUtils.getWALRootDir(this.conf),<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        MasterProcedureConstants.MASTER_PROCEDURE_LOGDIR);<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span><a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    procedureStore = new WALProcedureStore(conf, walDir.getFileSystem(conf), walDir,<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        new MasterProcedureEnv.WALStoreLeaseRecovery(this));<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    procedureStore.registerListener(new MasterProcedureEnv.MasterProcedureStoreListener(this));<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>    procedureExecutor = new ProcedureExecutor(conf, procEnv, procedureStore,<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>        procEnv.getProcedureScheduler());<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>    configurationManager.registerObserver(procEnv);<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span><a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS,<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        Math.max(Runtime.getRuntime().availableProcessors(),<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>          MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    final boolean abortOnCorruption = conf.getBoolean(<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>        MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    procedureStore.start(numThreads);<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>    procedureExecutor.start(numThreads, abortOnCorruption);<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>  }<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span><a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  private void stopProcedureExecutor() {<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>    if (procedureExecutor != null) {<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      configurationManager.deregisterObserver(procedureExecutor.getEnvironment());<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      procedureExecutor.stop();<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    if (procedureStore != null) {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      procedureStore.stop(isAborted());<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>  private void stopChores() {<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (this.expiredMobFileCleanerChore != null) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      this.expiredMobFileCleanerChore.cancel(true);<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    if (this.mobCompactChore != null) {<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>      this.mobCompactChore.cancel(true);<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>    }<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    if (this.balancerChore != null) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>      this.balancerChore.cancel(true);<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    if (this.normalizerChore != null) {<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>      this.normalizerChore.cancel(true);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    }<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    if (this.clusterStatusChore != null) {<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>      this.clusterStatusChore.cancel(true);<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>    }<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    if (this.catalogJanitorChore != null) {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      this.catalogJanitorChore.cancel(true);<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>    }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    if (this.clusterStatusPublisherChore != null){<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>      clusterStatusPublisherChore.cancel(true);<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    }<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    if (this.mobCompactThread != null) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>      this.mobCompactThread.close();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>    if (this.periodicDoMetricsChore != null) {<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      periodicDoMetricsChore.cancel();<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>  }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>  /**<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   * @return Get remote side's InetAddress<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>   */<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>  InetAddress getRemoteInetAddress(final int port,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>      final long serverStartCode) throws UnknownHostException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>    // Do it out here in its own little method so can fake an address when<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>    // mocking up in tests.<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>    InetAddress ia = RpcServer.getRemoteIp();<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span><a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    // The call could be from the local regionserver,<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>    // in which case, there is no remote address.<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    if (ia == null &amp;&amp; serverStartCode == startcode) {<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      InetSocketAddress isa = rpcServices.getSocketAddress();<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>      if (isa != null &amp;&amp; isa.getPort() == port) {<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        ia = isa.getAddress();<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      }<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    return ia;<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>  /**<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>   * @return Maximum time we should run balancer for<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>   */<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  private int getMaxBalancingTime() {<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    int maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_MAX_BALANCING, -1);<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>    if (maxBalancingTime == -1) {<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // if max balancing time isn't set, defaulting it to period time<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_PERIOD,<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>        HConstants.DEFAULT_HBASE_BALANCER_PERIOD);<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    return maxBalancingTime;<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>  /**<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>   * @return Maximum number of regions in transition<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>   */<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>  private int getMaxRegionsInTransition() {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    int numRegions = this.assignmentManager.getRegionStates().getRegionAssignments().size();<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>    return Math.max((int) Math.floor(numRegions * this.maxRitPercent), 1);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>  }<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>   * It first sleep to the next balance plan start time. Meanwhile, throttling by the max<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>   * number regions in transition to protect availability.<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>   * @param nextBalanceStartTime The next balance plan start time<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>   * @param maxRegionsInTransition max number of regions in transition<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>   * @param cutoffTime when to exit balancer<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>   */<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>  private void balanceThrottling(long nextBalanceStartTime, int maxRegionsInTransition,<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>      long cutoffTime) {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    boolean interrupted = false;<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>    // Sleep to next balance plan start time<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>    // But if there are zero regions in transition, it can skip sleep to speed up.<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    while (!interrupted &amp;&amp; System.currentTimeMillis() &lt; nextBalanceStartTime<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount() != 0) {<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>      try {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>        Thread.sleep(100);<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      } catch (InterruptedException ie) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>        interrupted = true;<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      }<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>    // Throttling by max number regions in transition<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    while (!interrupted<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        &amp;&amp; maxRegionsInTransition &gt; 0<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount()<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>        &gt;= maxRegionsInTransition &amp;&amp; System.currentTimeMillis() &lt;= cutoffTime) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      try {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        // sleep if the number of regions in transition exceeds the limit<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>        Thread.sleep(100);<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>      } catch (InterruptedException ie) {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>        interrupted = true;<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><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    if (interrupted) Thread.currentThread().interrupt();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>  }<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span><a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>  public boolean balance() throws IOException {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    return balance(false);<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  }<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  public boolean balance(boolean force) throws IOException {<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    // if master not initialized, don't run balancer.<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    if (!isInitialized()) {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>      LOG.debug("Master has not been initialized, don't run balancer.");<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>      LOG.info("Master is in maintenanceMode mode, don't run balancer.");<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      return false;<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>    int maxRegionsInTransition = getMaxRegionsInTransition();<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    synchronized (this.balancer) {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>      // If balance not true, don't run balancer.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>      if (!this.loadBalancerTracker.isBalancerOn()) return false;<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>      // Only allow one balance run at at time.<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      if (this.assignmentManager.getRegionStates().isRegionsInTransition()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>        Set&lt;RegionState&gt; regionsInTransition =<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>          this.assignmentManager.getRegionStates().getRegionsInTransition();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>        // if hbase:meta region is in transition, result of assignment cannot be recorded<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        // ignore the force flag in that case<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>        boolean metaInTransition = assignmentManager.getRegionStates().isMetaRegionInTransition();<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>        String prefix = force &amp;&amp; !metaInTransition ? "R" : "Not r";<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>        LOG.debug(prefix + "unning balancer because " + regionsInTransition.size() +<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>          " region(s) in transition: " + org.apache.commons.lang.StringUtils.<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>            abbreviate(regionsInTransition.toString(), 256));<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>        if (!force || metaInTransition) return false;<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      }<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      if (this.serverManager.areDeadServersInProgress()) {<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>        LOG.debug("Not running balancer because processing dead regionserver(s): " +<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>          this.serverManager.getDeadServers());<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>        return false;<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>      }<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span><a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      if (this.cpHost != null) {<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>        try {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>          if (this.cpHost.preBalance()) {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>            LOG.debug("Coprocessor bypassing balancer request");<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>            return false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>          }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>        } catch (IOException ioe) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          LOG.error("Error invoking master coprocessor preBalance()", ioe);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>          return false;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        }<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      }<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span><a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>      Map&lt;TableName, Map&lt;ServerName, List&lt;HRegionInfo&gt;&gt;&gt; assignmentsByTable =<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>        this.assignmentManager.getRegionStates().getAssignmentsByTable();<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span><a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>      //Give the balancer the current cluster state.<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>      this.balancer.setClusterStatus(getClusterStatus());<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>      this.balancer.setClusterLoad(<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>              this.assignmentManager.getRegionStates().getAssignmentsByTable(true));<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span><a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>      for (Entry&lt;TableName, Map&lt;ServerName, List&lt;HRegionInfo&gt;&gt;&gt; e : assignmentsByTable.entrySet()) {<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        List&lt;RegionPlan&gt; partialPlans = this.balancer.balanceCluster(e.getKey(), e.getValue());<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        if (partialPlans != null) plans.addAll(partialPlans);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      long balanceStartTime = System.currentTimeMillis();<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      long cutoffTime = balanceStartTime + this.maxBlancingTime;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>      int rpCount = 0;  // number of RegionPlans balanced so far<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (plans != null &amp;&amp; !plans.isEmpty()) {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>        int balanceInterval = this.maxBlancingTime / plans.size();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>        LOG.info("Balancer plans size is " + plans.size() + ", the balance interval is "<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>            + balanceInterval + " ms, and the max number regions in transition is "<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>            + maxRegionsInTransition);<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>        for (RegionPlan plan: plans) {<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>          LOG.info("balance " + plan);<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          //TODO: bulk assign<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>          this.assignmentManager.balance(plan);<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>          rpCount++;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span><a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>            cutoffTime);<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span><a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>            // a security net for now)<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>                + this.maxBlancingTime);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>            break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>          }<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><a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      if (this.cpHost != null) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>        try {<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>        } catch (IOException ioe) {<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>          // balancing already succeeded so don't change the result<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>        }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      }<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>    }<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>    // Return true indicating a success.<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    return true;<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>  }<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span><a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>  @Override<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>  @VisibleForTesting<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>    return this.normalizer;<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>  }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span><a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>  /**<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>   *<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>   *    is globally disabled)<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>   */<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  public boolean normalizeRegions() throws IOException {<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (!isInitialized()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>      return false;<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    }<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span><a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>    if (isInMaintenanceMode()) {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      return false;<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    }<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      return false;<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>    synchronized (this.normalizer) {<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      // Don't run the normalizer concurrently<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span><a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>      Collections.shuffle(allEnabledTables);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span><a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      for (TableName table : allEnabledTables) {<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>        if (isInMaintenanceMode()) {<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>          return false;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>        }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>        HTableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>          LOG.debug("Skipping normalization for table: " + table + ", as it's either system"<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>              + " table or doesn't have auto normalization turned on");<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>          continue;<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>        }<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>        if (plans != null) {<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>          for (NormalizationPlan plan : plans) {<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>              splitPlanCount++;<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>              mergePlanCount++;<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>            }<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>          }<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>        }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      }<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    // Return true indicating a success.<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>    return true;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>  }<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span><a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>  /**<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   */<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>  String getClientIdAuditPrefix() {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>    return "Client=" + RpcServer.getRequestUserName() + "/" + RpcServer.getRemoteAddress();<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>  }<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span><a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>  /**<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * Switch for the background CatalogJanitor thread.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * if disabled.<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   */<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  }<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span><a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  @Override<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>  public long mergeRegions(<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>      final HRegionInfo[] regionsToMerge,<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      final boolean forcible,<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      final long nonceGroup,<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      final long nonce) throws IOException {<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    checkInitialized();<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span><a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>    assert(regionsToMerge.length == 2);<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span><a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>    }<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span><a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      throw new IOException (<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    if (regionsToMerge[0].compareTo(regionsToMerge[1]) == 0) {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      throw new MergeRegionException(<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span><a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      @Override<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>      protected void run() throws IOException {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span><a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span><a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>          regionsToMerge, forcible));<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span><a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      }<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span><a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      @Override<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      protected String getDescription() {<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        return "DisableTableProcedure";<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>      }<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>    });<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>  }<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span><a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>  @Override<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>  public long splitRegion(<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      final HRegionInfo regionInfo,<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      final byte[] splitRow,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      final long nonceGroup,<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      final long nonce) throws IOException {<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>    checkInitialized();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      @Override<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      protected void run() throws IOException {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span><a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>        LOG.info(getClientIdAuditPrefix() + " Split region " + regionInfo);<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>        // Execute the operation asynchronously<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>        submitProcedure(new SplitTableRegionProcedure(procedureExecutor.getEnvironment(),<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>            regionInfo, splitRow));<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      }<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span><a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      @Override<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      protected String getDescription() {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>        return "DisableTableProcedure";<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>      }<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>    });<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>  }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span><a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>  @VisibleForTesting // Public so can be accessed by tests.<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  public void move(final byte[] encodedRegionName,<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      final byte[] destServerName) throws HBaseIOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span><a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    HRegionInfo hri;<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>    if (regionState != null) {<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      hri = regionState.getRegion();<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } else {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span><a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    ServerName dest;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>        "choosing a server at random");<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>        regionState.getServerName());<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      if (dest == null) {<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>        return;<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      }<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    } else {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      if (dest == null) {<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        return;<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      }<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>        // regions on master. Regions on master could be put on other region<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>        // server intentionally by test however.<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>          + " because it should not be on master");<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>        return;<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>      }<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    }<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span><a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      return;<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    // Now we can do the move<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span><a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      checkInitialized();<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      if (this.cpHost != null) {<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        if (this.cpHost.preMove(hri, rp.getSource(), rp.getDestination())) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>          return;<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>        }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      }<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // warmup the region on the destination before initiating the move. this call<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>      // closed<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>      this.assignmentManager.balance(rp);<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>      if (this.cpHost != null) {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>      }<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    } catch (IOException ioe) {<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>      if (ioe instanceof HBaseIOException) {<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>        throw (HBaseIOException)ioe;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>      }<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      throw new HBaseIOException(ioe);<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    }<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>  }<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span><a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>  @Override<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>  public long createTable(<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      final HTableDescriptor hTableDescriptor,<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      final byte [][] splitKeys,<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      final long nonceGroup,<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      final long nonce) throws IOException {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>    checkInitialized();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span><a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>    String namespace = hTableDescriptor.getTableName().getNamespaceAsString();<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span><a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    HRegionInfo[] newRegions = ModifyRegionUtils.createHRegionInfos(hTableDescriptor, splitKeys);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>    sanityCheckTableDescriptor(hTableDescriptor);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span><a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      @Override<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      protected void run() throws IOException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>        getMaster().getMasterCoprocessorHost().preCreateTable(hTableDescriptor, newRegions);<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span><a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor);<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span><a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createLatch();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        submitProcedure(new CreateTableProcedure(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>            procedureExecutor.getEnvironment(), hTableDescriptor, newRegions, latch));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>        latch.await();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span><a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        getMaster().getMasterCoprocessorHost().postCreateTable(hTableDescriptor, newRegions);<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      }<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span><a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      @Override<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      protected String getDescription() {<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>        return "CreateTableProcedure";<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      }<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>    });<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>  }<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span><a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>  @Override<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>  public long createSystemTable(final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>    if (isStopped()) {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      throw new MasterNotRunningException();<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    }<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    TableName tableName = hTableDescriptor.getTableName();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>    if (!(tableName.isSystemTable())) {<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>      throw new IllegalArgumentException(<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        "Only system table creation can use this createSystemTable API");<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>    }<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span><a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>    HRegionInfo[] newRegions = ModifyRegionUtils.createHRegionInfos(hTableDescriptor, null);<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span><a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span><a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>    // to use nonce to detect duplicated RPC call.<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), hTableDescriptor, newRegions));<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span><a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>    return procId;<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>  }<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span><a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>  /**<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>   * @throws IOException<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>   */<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>  private void sanityCheckTableDescriptor(final HTableDescriptor htd) throws IOException {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>    boolean logWarn = false;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      logWarn = true;<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    }<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    String tableVal = htd.getConfigurationValue(CONF_KEY);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      logWarn = true;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    }<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span><a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    // check max file size<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    if (maxFileSize &lt; 0) {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>    }<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          + "number of regions.";<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>    }<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span><a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>    // check flush size<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    if (flushSize &lt; 0) {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          + " very frequent flushing.";<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>    }<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span><a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>    try {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>      checkClassLoading(conf, htd);<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>    } catch (Exception ex) {<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span><a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    // check compression can be loaded<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    try {<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      checkCompression(htd);<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    } catch (IOException e) {<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>    }<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span><a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>    // check encryption can be loaded<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>    try {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>      checkEncryption(conf, htd);<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    } catch (IOException e) {<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    // Verify compaction policy<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>    try{<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      checkCompactionPolicy(conf, htd);<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    } catch(IOException e){<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    }<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    // check that we have at least 1 CF<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      String message = "Table should have at least one column family.";<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>    }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>    for (HColumnDescriptor hcd : htd.getColumnFamilies()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.1762"><

<TRUNCATED>

[21/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
index 0f81c9f..b9941b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
@@ -2185,7 +2185,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initMobCleaner</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.923">initMobCleaner</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.924">initMobCleaner</a>()</pre>
 </li>
 </ul>
 <a name="createMetaBootstrap-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.monitoring.MonitoredTask-">
@@ -2194,7 +2194,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createMetaBootstrap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master">MasterMetaBootstrap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.942">createMetaBootstrap</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;master,
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master">MasterMetaBootstrap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.943">createMetaBootstrap</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;master,
                                         <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)</pre>
 <div class="block">Create a <a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master"><code>MasterMetaBootstrap</code></a> instance.</div>
 </li>
@@ -2205,7 +2205,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createServerManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.951">createServerManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.952">createServerManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create a <a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master"><code>ServerManager</code></a> instance.</div>
 <dl>
@@ -2220,7 +2220,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForRegionServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.958">waitForRegionServers</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;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.959">waitForRegionServers</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="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -2236,7 +2236,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initClusterSchemaService</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.971">initClusterSchemaService</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.972">initClusterSchemaService</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -2252,7 +2252,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initQuotaManager</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.977">initQuotaManager</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.978">initQuotaManager</a>()
                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2266,7 +2266,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogJanitorEnabled</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.984">isCatalogJanitorEnabled</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.985">isCatalogJanitorEnabled</a>()</pre>
 </li>
 </ul>
 <a name="isCleanerChoreEnabled--">
@@ -2275,7 +2275,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCleanerChoreEnabled</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.989">isCleanerChoreEnabled</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.990">isCleanerChoreEnabled</a>()</pre>
 </li>
 </ul>
 <a name="getTableDescriptors--">
@@ -2284,7 +2284,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1004">getTableDescriptors</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1005">getTableDescriptors</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getTableDescriptors--">getTableDescriptors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2301,7 +2301,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1009">getServerManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1010">getServerManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getServerManager--">getServerManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2316,7 +2316,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterFileSystem</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1014">getMasterFileSystem</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1015">getMasterFileSystem</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterFileSystem--">getMasterFileSystem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2331,7 +2331,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterWalManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1019">getMasterWalManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1020">getMasterWalManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterWalManager--">getMasterWalManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2346,7 +2346,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableStateManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1024">getTableStateManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1025">getTableStateManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getTableStateManager--">getTableStateManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2361,7 +2361,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startServiceThreads</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1035">startServiceThreads</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1036">startServiceThreads</a>()
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2375,7 +2375,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>sendShutdownInterrupt</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1092">sendShutdownInterrupt</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1093">sendShutdownInterrupt</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">HRegionServer</a></code></span></div>
 <div class="block">Called on stop/abort before closing the cluster connection and meta locator.</div>
 <dl>
@@ -2390,7 +2390,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServiceThreads</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1098">stopServiceThreads</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1099">stopServiceThreads</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stopServiceThreads--">HRegionServer</a></code></span></div>
 <div class="block">Wait on all threads to finish. Presumption is that all closes and stops
  have already been called.</div>
@@ -2406,7 +2406,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1133">startProcedureExecutor</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1134">startProcedureExecutor</a>()
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2420,7 +2420,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1155">stopProcedureExecutor</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1156">stopProcedureExecutor</a>()</pre>
 </li>
 </ul>
 <a name="stopChores--">
@@ -2429,7 +2429,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopChores</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1166">stopChores</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1167">stopChores</a>()</pre>
 </li>
 </ul>
 <a name="getRemoteInetAddress-int-long-">
@@ -2438,7 +2438,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteInetAddress</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1200">getRemoteInetAddress</a>(int&nbsp;port,
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1201">getRemoteInetAddress</a>(int&nbsp;port,
                                  long&nbsp;serverStartCode)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></pre>
 <dl>
@@ -2455,7 +2455,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxBalancingTime</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1220">getMaxBalancingTime</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1221">getMaxBalancingTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Maximum time we should run balancer for</dd>
@@ -2468,7 +2468,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxRegionsInTransition</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1233">getMaxRegionsInTransition</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1234">getMaxRegionsInTransition</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Maximum number of regions in transition</dd>
@@ -2481,7 +2481,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceThrottling</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1245">balanceThrottling</a>(long&nbsp;nextBalanceStartTime,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1246">balanceThrottling</a>(long&nbsp;nextBalanceStartTime,
                                int&nbsp;maxRegionsInTransition,
                                long&nbsp;cutoffTime)</pre>
 <div class="block">It first sleep to the next balance plan start time. Meanwhile, throttling by the max
@@ -2500,7 +2500,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1276">balance</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1277">balance</a>()
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2514,7 +2514,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1280">balance</a>(boolean&nbsp;force)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1281">balance</a>(boolean&nbsp;force)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2528,7 +2528,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionNormalizer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1387">getRegionNormalizer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1388">getRegionNormalizer</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getRegionNormalizer--">getRegionNormalizer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2543,7 +2543,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizeRegions</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1398">normalizeRegions</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1399">normalizeRegions</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Perform normalization of cluster (invoked by <a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.html" title="class in org.apache.hadoop.hbase.master.normalizer"><code>RegionNormalizerChore</code></a>).</div>
 <dl>
@@ -2562,7 +2562,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClientIdAuditPrefix</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1455">getClientIdAuditPrefix</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1456">getClientIdAuditPrefix</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Client info for use as prefix on an audit log string; who did an action</dd>
@@ -2575,7 +2575,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>setCatalogJanitorEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1465">setCatalogJanitorEnabled</a>(boolean&nbsp;b)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1466">setCatalogJanitorEnabled</a>(boolean&nbsp;b)</pre>
 <div class="block">Switch for the background CatalogJanitor thread.
  Used for testing.  The thread will continue to run.  It will just be a noop
  if disabled.</div>
@@ -2591,7 +2591,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeRegions</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1470">mergeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regionsToMerge,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1471">mergeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>[]&nbsp;regionsToMerge,
                          boolean&nbsp;forcible,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -2619,7 +2619,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1518">splitRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1519">splitRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                         byte[]&nbsp;splitRow,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -2647,7 +2647,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>move</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1546">move</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1547">move</a>(byte[]&nbsp;encodedRegionName,
                  byte[]&nbsp;destServerName)
           throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <dl>
@@ -2662,7 +2662,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1623">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1624">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor,
                         byte[][]&nbsp;splitKeys,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -2687,7 +2687,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createSystemTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1662">createSystemTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1663">createSystemTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;hTableDescriptor)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#createSystemTable-org.apache.hadoop.hbase.HTableDescriptor-">MasterServices</a></code></span></div>
 <div class="block">Create a system table using the given table definition.</div>
@@ -2708,7 +2708,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>sanityCheckTableDescriptor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1690">sanityCheckTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1691">sanityCheckTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Checks whether the table conforms to some sane limits, and configured
  values (compression, etc) work. Throws an exception if something is wrong.</div>
@@ -2724,7 +2724,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkReplicationScope</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1805">checkReplicationScope</a>(<a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;hcd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1806">checkReplicationScope</a>(<a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;hcd)
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2738,7 +2738,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompactionPolicy</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1817">checkCompactionPolicy</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1818">checkCompactionPolicy</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                    <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2753,7 +2753,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>warnOrThrowExceptionForFailure</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1876">warnOrThrowExceptionForFailure</a>(boolean&nbsp;logWarn,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1877">warnOrThrowExceptionForFailure</a>(boolean&nbsp;logWarn,
                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confKey,
                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;cause)
@@ -2770,7 +2770,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startActiveMasterManager</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1885">startActiveMasterManager</a>(int&nbsp;infoPort)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1886">startActiveMasterManager</a>(int&nbsp;infoPort)
                                throws org.apache.zookeeper.KeeperException</pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2784,7 +2784,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompression</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1952">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1953">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2798,7 +2798,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompression</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1960">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;hcd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1961">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;hcd)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2812,7 +2812,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkEncryption</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1967">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1968">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                              <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2827,7 +2827,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkEncryption</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1975">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1976">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                              <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;hcd)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2842,7 +2842,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkClassLoading</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1981">checkClassLoading</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1982">checkClassLoading</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;htd)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2857,7 +2857,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogTable</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1987">isCatalogTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1988">isCatalogTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
 <a name="deleteTable-org.apache.hadoop.hbase.TableName-long-long-">
@@ -2866,7 +2866,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1992">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1993">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -2888,7 +2888,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>truncateTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2023">truncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2024">truncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                           boolean&nbsp;preserveSplits,
                           long&nbsp;nonceGroup,
                           long&nbsp;nonce)
@@ -2912,7 +2912,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>addColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2053">addColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2054">addColumn</a>(<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/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnDescriptor,
                       long&nbsp;nonceGroup,
                       long&nbsp;nonce)
@@ -2936,7 +2936,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2089">modifyColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2090">modifyColumn</a>(<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/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;descriptor,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -2960,7 +2960,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2128">deleteColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2129">deleteColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          byte[]&nbsp;columnName,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -2984,7 +2984,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2163">enableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2164">enableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3006,7 +3006,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>disableTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2196">disableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2197">disableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3028,7 +3028,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableRegionForRow</h4>
-<pre><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/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<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/master/HMaster.html#line.2235">getTableRegionForRow</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre><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/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<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/master/HMaster.html#line.2236">getTableRegionForRow</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                   byte[]&nbsp;rowKey)
                                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Return the region and current deployment for the region containing
@@ -3047,7 +3047,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2265">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2266">modifyTable</a>(<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/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;descriptor,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -3071,7 +3071,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2294">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshotDesc,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2295">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.SnapshotDescription&nbsp;snapshotDesc,
                             long&nbsp;nonceGroup,
                             long&nbsp;nonce)
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3087,7 +3087,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTableModifiable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2318">checkTableModifiable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2319">checkTableModifiable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                  <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
                                  <a href="../../../../../org/apache/hadoop/hbase/TableNotDisabledException.html" title="class in org.apache.hadoop.hbase">TableNotDisabledException</a></pre>
@@ -3111,7 +3111,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterStatus</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2334">getClusterStatus</a>()
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2335">getClusterStatus</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3127,7 +3127,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getLoadedCoprocessors</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2403">getLoadedCoprocessors</a>()</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2404">getLoadedCoprocessors</a>()</pre>
 <div class="block">The set of loaded coprocessors is stored in a static set. Since it's
  statically allocated, it does not require that HMaster's cpHost be
  initialized prior to accessing it.</div>
@@ -3143,7 +3143,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterStartTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2410">getMasterStartTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2411">getMasterStartTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster was started.</dd>
@@ -3156,7 +3156,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterActiveTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2417">getMasterActiveTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2418">getMasterActiveTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster became the active master.</dd>
@@ -3169,7 +3169,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumWALFiles</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2421">getNumWALFiles</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2422">getNumWALFiles</a>()</pre>
 </li>
 </ul>
 <a name="getWalProcedureStore--">
@@ -3178,7 +3178,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getWalProcedureStore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2425">getWalProcedureStore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2426">getWalProcedureStore</a>()</pre>
 </li>
 </ul>
 <a name="getRegionServerInfoPort-org.apache.hadoop.hbase.ServerName-">
@@ -3187,7 +3187,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerInfoPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2429">getRegionServerInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2430">getRegionServerInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 </li>
 </ul>
 <a name="getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">
@@ -3196,7 +3196,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerVersion</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2438">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2439">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 </li>
 </ul>
 <a name="getMasterCoprocessors--">
@@ -3205,7 +3205,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessors</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2449">getMasterCoprocessors</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2450">getMasterCoprocessors</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>array of coprocessor SimpleNames.</dd>
@@ -3218,7 +3218,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2455">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2456">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-java.lang.Throwable-">HRegionServer</a></code></span></div>
 <div class="block">Cause the server to exit without closing the regions it is serving, the log
@@ -3241,7 +3241,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2473">getZooKeeper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2474">getZooKeeper</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getZooKeeper--">Server</a></code></span></div>
 <div class="block">Gets the ZooKeeper instance for this server.</div>
 <dl>
@@ -3258,7 +3258,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2478">getMasterCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2479">getMasterCoprocessorHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterCoprocessorHost--">getMasterCoprocessorHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3273,7 +3273,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterQuotaManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2483">getMasterQuotaManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2484">getMasterQuotaManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterQuotaManager--">getMasterQuotaManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3288,7 +3288,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterProcedureExecutor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2488">getMasterProcedureExecutor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2489">getMasterProcedureExecutor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterProcedureExecutor--">getMasterProcedureExecutor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3303,7 +3303,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2493">getServerName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2494">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getServerName--">getServerName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></dd>
@@ -3320,7 +3320,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getAssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2498">getAssignmentManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2499">getAssignmentManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getAssignmentManager--">getAssignmentManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3335,7 +3335,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getCatalogJanitor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2503">getCatalogJanitor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2504">getCatalogJanitor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getCatalogJanitor--">getCatalogJanitor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3350,7 +3350,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerFatalLogBuffer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2507">getRegionServerFatalLogBuffer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2508">getRegionServerFatalLogBuffer</a>()</pre>
 </li>
 </ul>
 <a name="shutdown--">
@@ -3359,7 +3359,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2511">shutdown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2512">shutdown</a>()
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3373,7 +3373,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2528">stopMaster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2529">stopMaster</a>()
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3387,7 +3387,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkServiceStarted</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2535">checkServiceStarted</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2536">checkServiceStarted</a>()
                   throws <a href="../../../../../org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc">ServerNotRunningYetException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3401,7 +3401,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkInitialized</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2541">checkInitialized</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2542">checkInitialized</a>()
                throws <a href="../../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>,
                       <a href="../../../../../org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc">ServerNotRunningYetException</a>,
                       <a href="../../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a></pre>
@@ -3419,7 +3419,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isActiveMaster</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2557">isActiveMaster</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2558">isActiveMaster</a>()</pre>
 <div class="block">Report whether this master is currently the active master or not.
  If not active master, we are parked on ZK waiting to become active.
 
@@ -3438,7 +3438,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitialized</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2571">isInitialized</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2572">isInitialized</a>()</pre>
 <div class="block">Report whether this master has completed with its initialization and is
  ready.  If ready, the master is also the active master.  A standby master
  is never ready.
@@ -3458,7 +3458,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isInMaintenanceMode</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2581">isInMaintenanceMode</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2582">isInMaintenanceMode</a>()</pre>
 <div class="block">Report whether this master is in maintenance mode.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3474,7 +3474,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>setInitialized</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2586">setInitialized</a>(boolean&nbsp;isInitialized)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2587">setInitialized</a>(boolean&nbsp;isInitialized)</pre>
 </li>
 </ul>
 <a name="getInitializedEvent--">
@@ -3483,7 +3483,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitializedEvent</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2590">getInitializedEvent</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2591">getInitializedEvent</a>()</pre>
 </li>
 </ul>
 <a name="isServerCrashProcessingEnabled--">
@@ -3492,7 +3492,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isServerCrashProcessingEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2600">isServerCrashProcessingEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2601">isServerCrashProcessingEnabled</a>()</pre>
 <div class="block">ServerCrashProcessingEnabled is set false before completing assignMeta to prevent processing
  of crashed servers.</div>
 <dl>
@@ -3509,7 +3509,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>setServerCrashProcessingEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2605">setServerCrashProcessingEnabled</a>(boolean&nbsp;b)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2606">setServerCrashProcessingEnabled</a>(boolean&nbsp;b)</pre>
 </li>
 </ul>
 <a name="getServerCrashProcessingEnabledEvent--">
@@ -3518,7 +3518,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerCrashProcessingEnabledEvent</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2609">getServerCrashProcessingEnabledEvent</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2610">getServerCrashProcessingEnabledEvent</a>()</pre>
 </li>
 </ul>
 <a name="isInitializationStartsMetaRegionAssignment--">
@@ -3527,7 +3527,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitializationStartsMetaRegionAssignment</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2617">isInitializationStartsMetaRegionAssignment</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2618">isInitializationStartsMetaRegionAssignment</a>()</pre>
 <div class="block">Report whether this master has started initialization and is about to do meta region assignment</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3541,7 +3541,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getAverageLoad</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2627">getAverageLoad</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2628">getAverageLoad</a>()</pre>
 <div class="block">Compute the average load across all region servers.
  Currently, this uses a very naive computation - just uses the number of
  regions being served, ignoring stats about number of requests.</div>
@@ -3557,7 +3557,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitPlanCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2642">getSplitPlanCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2643">getSplitPlanCount</a>()</pre>
 </li>
 </ul>
 <a name="getMergePlanCount--">
@@ -3566,7 +3566,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMergePlanCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2649">getMergePlanCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2650">getMergePlanCount</a>()</pre>
 </li>
 </ul>
 <a name="registerService-com.google.protobuf.Service-">
@@ -3575,7 +3575,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>registerService</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2654">registerService</a>(com.google.protobuf.Service&nbsp;instance)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2655">registerService</a>(com.google.protobuf.Service&nbsp;instance)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#registerService-com.google.protobuf.Service-">RegionServerServices</a></code></span></div>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
  available for handling</div>
@@ -3599,7 +3599,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>constructMaster</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2679">constructMaster</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&gt;&nbsp;masterClass,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2680">constructMaster</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&gt;&nbsp;masterClass,
                                       org.apache.hadoop.conf.Configuration&nbsp;conf,
                                       <a href="../../../../../org/apache/hadoop/hbase/CoordinatedStateManager.html" title="interface in org.apache.hadoop.hbase">CoordinatedStateManager</a>&nbsp;cp)</pre>
 <div class="block">Utility for constructing an instance of the passed HMaster class.</div>
@@ -3617,7 +3617,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2699">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2700">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/master/HMasterCommandLine.html" title="class in org.apache.hadoop.hbase.master"><code>HMasterCommandLine</code></a></dd>
@@ -3630,7 +3630,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getHFileCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2705">getHFileCleaner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2706">getHFileCleaner</a>()</pre>
 </li>
 </ul>
 <a name="getLogCleaner--">
@@ -3639,7 +3639,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2709">getLogCleaner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2710">getLogCleaner</a>()</pre>
 </li>
 </ul>
 <a name="getSnapshotManager--">
@@ -3648,7 +3648,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getSnapshotManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2717">getSnapshotManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2718">getSnapshotManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getSnapshotManager--">getSnapshotManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3663,7 +3663,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterProcedureManagerHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2725">getMasterProcedureManagerHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2726">getMasterProcedureManagerHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterProcedureManagerHost--">getMasterProcedureManagerHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3678,7 +3678,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterSchema</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchema.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchema</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2730">getClusterSchema</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchema.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchema</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2731">getClusterSchema</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span>

<TRUNCATED>

[10/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
index c885b3a..ac9ce7d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
@@ -1303,1942 +1303,1943 @@
 <span class="sourceLineNo">1295</span>      throw new RegionServerStoppedException("File system not available");<a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>    }<a name="line.1296"></a>
 <span class="sourceLineNo">1297</span>    if (!regionServer.isOnline()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      throw new ServerNotRunningYetException("Server is not running yet");<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    }<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>  /**<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   * @return list of blocking services and their security info classes that this server supports<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   */<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  protected List&lt;BlockingServiceAndInterface&gt; getServices() {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>    List&lt;BlockingServiceAndInterface&gt; bssi = new ArrayList&lt;&gt;(2);<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      ClientService.newReflectiveBlockingService(this),<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      ClientService.BlockingInterface.class));<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      AdminService.newReflectiveBlockingService(this),<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      AdminService.BlockingInterface.class));<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    return bssi;<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span><a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>  public InetSocketAddress getSocketAddress() {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    return isa;<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  }<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span><a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  @Override<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  public int getPriority(RequestHeader header, Message param, User user) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>    return priority.getPriority(header, param, user);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  }<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  @Override<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>  public long getDeadline(RequestHeader header, Message param) {<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>    return priority.getDeadline(header, param);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>  }<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  /*<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>   * Check if an OOME and, if so, abort immediately to avoid creating more objects.<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>   *<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>   * @param e<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>   *<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>   * @return True if we OOME'd and are aborting.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>   */<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  @Override<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>  public boolean checkOOME(final Throwable e) {<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>    return exitIfOOME(e);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  public static boolean exitIfOOME(final Throwable e ){<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>    boolean stop = false;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    try {<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (e instanceof OutOfMemoryError<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>          || (e.getCause() != null &amp;&amp; e.getCause() instanceof OutOfMemoryError)<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>          || (e.getMessage() != null &amp;&amp; e.getMessage().contains(<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>              "java.lang.OutOfMemoryError"))) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>        stop = true;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>        LOG.fatal("Run out of memory; " + RSRpcServices.class.getSimpleName()<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>          + " will abort itself immediately", e);<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    } finally {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      if (stop) {<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        Runtime.getRuntime().halt(1);<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>    }<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>    return stop;<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>  }<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span><a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>  /**<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>   * Close a region on the region server.<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>   *<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>   * @param controller the RPC controller<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>   * @param request the request<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>   * @throws ServiceException<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>   */<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  @Override<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public CloseRegionResponse closeRegion(final RpcController controller,<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      final CloseRegionRequest request) throws ServiceException {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>    final ServerName sn = (request.hasDestinationServer() ?<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>      ProtobufUtil.toServerName(request.getDestinationServer()) : null);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span><a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    try {<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>      checkOpen();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      if (request.hasServerStartCode()) {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>        // check that we are the same server that this RPC is intended for.<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>        long serverStartCode = request.getServerStartCode();<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>        if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>          throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>              "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>              + regionServer.serverName));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        }<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>      }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>      final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion());<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span><a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>      requestCount.increment();<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>      if (sn == null) {<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        LOG.info("Close " + encodedRegionName + " without moving");<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      } else {<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>        LOG.info("Close " + encodedRegionName + ", moving to " + sn);<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      boolean closed = regionServer.closeRegion(encodedRegionName, false, sn);<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>      CloseRegionResponse.Builder builder = CloseRegionResponse.newBuilder().setClosed(closed);<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>      return builder.build();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    } catch (IOException ie) {<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>      throw new ServiceException(ie);<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    }<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  }<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span><a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>  @Override<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public CloseRegionForSplitOrMergeResponse closeRegionForSplitOrMerge(<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      final RpcController controller,<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      final CloseRegionForSplitOrMergeRequest request) throws ServiceException {<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    try {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      checkOpen();<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span><a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      List&lt;String&gt; encodedRegionNameList = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      for(int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion(i));<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>        // Can be null if we're calling close on a region that's not online<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>        final Region targetRegion = regionServer.getFromOnlineRegions(encodedRegionName);<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>        if ((targetRegion != null) &amp;&amp; (targetRegion.getCoprocessorHost() != null)) {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>          targetRegion.getCoprocessorHost().preClose(false);<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>          encodedRegionNameList.add(encodedRegionName);<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      requestCount.increment();<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>      LOG.info("Close and offline " + encodedRegionNameList + " regions.");<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>      boolean closed = regionServer.closeAndOfflineRegionForSplitOrMerge(encodedRegionNameList);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      CloseRegionForSplitOrMergeResponse.Builder builder =<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>          CloseRegionForSplitOrMergeResponse.newBuilder().setClosed(closed);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      return builder.build();<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    } catch (IOException ie) {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>      throw new ServiceException(ie);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  /**<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>   * Compact a region on the region server.<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>   *<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>   * @param controller the RPC controller<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>   * @param request the request<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>   * @throws ServiceException<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>   */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>  @Override<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>  public CompactRegionResponse compactRegion(final RpcController controller,<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>      final CompactRegionRequest request) throws ServiceException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    try {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      checkOpen();<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      requestCount.increment();<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>      Region region = getRegion(request.getRegion());<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      region.startRegionOperation(Operation.COMPACT_REGION);<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>      LOG.info("Compacting " + region.getRegionInfo().getRegionNameAsString());<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>      boolean major = false;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>      byte [] family = null;<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>      Store store = null;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      if (request.hasFamily()) {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>        family = request.getFamily().toByteArray();<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>        store = region.getStore(family);<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        if (store == null) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>          throw new ServiceException(new DoNotRetryIOException("column family " +<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>              Bytes.toString(family) + " does not exist in region " +<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>              region.getRegionInfo().getRegionNameAsString()));<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>        }<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>      }<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      if (request.hasMajor()) {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>        major = request.getMajor();<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      }<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      if (major) {<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>        if (family != null) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>          store.triggerMajorCompaction();<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>        } else {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>          region.triggerMajorCompaction();<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>      }<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span><a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      String familyLogMsg = (family != null)?" for column family: " + Bytes.toString(family):"";<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      if (LOG.isTraceEnabled()) {<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>        LOG.trace("User-triggered compaction requested for region "<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>          + region.getRegionInfo().getRegionNameAsString() + familyLogMsg);<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>      }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      String log = "User-triggered " + (major ? "major " : "") + "compaction" + familyLogMsg;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>      if(family != null) {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>        regionServer.compactSplitThread.requestCompaction(region, store, log,<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      } else {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        regionServer.compactSplitThread.requestCompaction(region, log,<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>      }<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      return CompactRegionResponse.newBuilder().build();<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    } catch (IOException ie) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      throw new ServiceException(ie);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  }<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Flush a region on the region server.<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   *<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   * @param controller the RPC controller<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * @param request the request<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * @throws ServiceException<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>  @Override<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>  public FlushRegionResponse flushRegion(final RpcController controller,<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>      final FlushRegionRequest request) throws ServiceException {<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    try {<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>      checkOpen();<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>      requestCount.increment();<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>      Region region = getRegion(request.getRegion());<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>      LOG.info("Flushing " + region.getRegionInfo().getRegionNameAsString());<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      boolean shouldFlush = true;<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      if (request.hasIfOlderThanTs()) {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>        shouldFlush = region.getEarliestFlushTimeForAllStores() &lt; request.getIfOlderThanTs();<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      }<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      FlushRegionResponse.Builder builder = FlushRegionResponse.newBuilder();<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      if (shouldFlush) {<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        boolean writeFlushWalMarker =  request.hasWriteFlushWalMarker() ?<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>            request.getWriteFlushWalMarker() : false;<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>        // Go behind the curtain so we can manage writing of the flush WAL marker<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>        HRegion.FlushResultImpl flushResult = (HRegion.FlushResultImpl)<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>            ((HRegion)region).flushcache(true, writeFlushWalMarker);<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        boolean compactionNeeded = flushResult.isCompactionNeeded();<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>        if (compactionNeeded) {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>          regionServer.compactSplitThread.requestSystemCompaction(region,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>            "Compaction through user triggered flush");<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>        }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>        builder.setFlushed(flushResult.isFlushSucceeded());<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>        builder.setWroteFlushWalMarker(flushResult.wroteFlushWalMarker);<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      }<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      builder.setLastFlushTime(region.getEarliestFlushTimeForAllStores());<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      return builder.build();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>    } catch (DroppedSnapshotException ex) {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Cache flush can fail in a few places. If it fails in a critical<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // section, we get a DroppedSnapshotException and a replay of wal<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      // is required. Currently the only way to do this is a restart of<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>      // the server.<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      throw new ServiceException(ex);<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>    } catch (IOException ie) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      throw new ServiceException(ie);<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>    }<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span><a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>  @Override<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  public GetOnlineRegionResponse getOnlineRegion(final RpcController controller,<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      final GetOnlineRegionRequest request) throws ServiceException {<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    try {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      checkOpen();<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      requestCount.increment();<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      Map&lt;String, Region&gt; onlineRegions = regionServer.onlineRegions;<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      List&lt;HRegionInfo&gt; list = new ArrayList&lt;&gt;(onlineRegions.size());<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      for (Region region: onlineRegions.values()) {<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>        list.add(region.getRegionInfo());<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>      }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      Collections.sort(list);<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      return ResponseConverter.buildGetOnlineRegionResponse(list);<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } catch (IOException ie) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new ServiceException(ie);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>  }<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span><a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>  @Override<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  public GetRegionInfoResponse getRegionInfo(final RpcController controller,<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final GetRegionInfoRequest request) throws ServiceException {<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>    try {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      checkOpen();<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      requestCount.increment();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      Region region = getRegion(request.getRegion());<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      HRegionInfo info = region.getRegionInfo();<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      builder.setRegionInfo(HRegionInfo.convert(info));<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      if (request.hasCompactionState() &amp;&amp; request.getCompactionState()) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>        builder.setCompactionState(region.getCompactionState());<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      builder.setIsRecovering(region.isRecovering());<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      return builder.build();<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    } catch (IOException ie) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      throw new ServiceException(ie);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>  }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span><a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  @Override<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  public GetRegionLoadResponse getRegionLoad(RpcController controller,<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      GetRegionLoadRequest request) throws ServiceException {<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span><a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    List&lt;Region&gt; regions;<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    if (request.hasTableName()) {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>      regions = regionServer.getOnlineRegions(tableName);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>    } else {<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>      regions = regionServer.getOnlineRegions();<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    List&lt;RegionLoad&gt; rLoads = new ArrayList&lt;&gt;(regions.size());<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>    RegionLoad.Builder regionLoadBuilder = ClusterStatusProtos.RegionLoad.newBuilder();<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    RegionSpecifier.Builder regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span><a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    try {<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>      for (Region region : regions) {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>        rLoads.add(regionServer.createRegionLoad(region, regionLoadBuilder, regionSpecifier));<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      }<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>    } catch (IOException e) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>      throw new ServiceException(e);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>    }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>    GetRegionLoadResponse.Builder builder = GetRegionLoadResponse.newBuilder();<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>    builder.addAllRegionLoads(rLoads);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>    return builder.build();<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>  }<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span><a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>  /**<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>   * Get some information of the region server.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>   *<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>   * @param controller the RPC controller<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>   * @param request the request<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>   * @throws ServiceException<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>   */<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>  @Override<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>  public GetServerInfoResponse getServerInfo(final RpcController controller,<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      final GetServerInfoRequest request) throws ServiceException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    try {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      checkOpen();<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    } catch (IOException ie) {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>      throw new ServiceException(ie);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    requestCount.increment();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>    int infoPort = regionServer.infoServer != null ? regionServer.infoServer.getPort() : -1;<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>    return ResponseConverter.buildGetServerInfoResponse(regionServer.serverName, infoPort);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  }<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span><a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>  @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>  public GetStoreFileResponse getStoreFile(final RpcController controller,<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      final GetStoreFileRequest request) throws ServiceException {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    try {<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      checkOpen();<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      Region region = getRegion(request.getRegion());<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>      requestCount.increment();<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>      Set&lt;byte[]&gt; columnFamilies;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      if (request.getFamilyCount() == 0) {<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        columnFamilies = region.getTableDesc().getFamiliesKeys();<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>      } else {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>        columnFamilies = new TreeSet&lt;&gt;(Bytes.BYTES_RAWCOMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        for (ByteString cf: request.getFamilyList()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>          columnFamilies.add(cf.toByteArray());<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        }<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>      }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      int nCF = columnFamilies.size();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>      List&lt;String&gt;  fileList = region.getStoreFileList(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>        columnFamilies.toArray(new byte[nCF][]));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      GetStoreFileResponse.Builder builder = GetStoreFileResponse.newBuilder();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      builder.addAllStoreFile(fileList);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      return builder.build();<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    } catch (IOException ie) {<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      throw new ServiceException(ie);<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>    }<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  }<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span><a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>  /**<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>   * Open asynchronously a region or a set of regions on the region server.<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>   *<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>   * The opening is coordinated by ZooKeeper, and this method requires the znode to be created<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>   *  before being called. As a consequence, this method should be called only from the master.<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>   * &lt;p&gt;<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>   * Different manages states for the region are:<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>   * &lt;/p&gt;&lt;ul&gt;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>   *  &lt;li&gt;region not opened: the region opening will start asynchronously.&lt;/li&gt;<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>   *  &lt;li&gt;a close is already in progress: this is considered as an error.&lt;/li&gt;<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>   *  &lt;li&gt;an open is already in progress: this new open request will be ignored. This is important<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>   *  because the Master can do multiple requests if it crashes.&lt;/li&gt;<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>   *  &lt;li&gt;the region is already opened:  this new open request will be ignored.&lt;/li&gt;<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>   *  &lt;/ul&gt;<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * &lt;p&gt;<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * Bulk assign: If there are more than 1 region to open, it will be considered as a bulk assign.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   * For a single region opening, errors are sent through a ServiceException. For bulk assign,<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>   * errors are put in the response as FAILED_OPENING.<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>   * &lt;/p&gt;<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>   * @param controller the RPC controller<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>   * @param request the request<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>   * @throws ServiceException<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>   */<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>  @Override<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  public OpenRegionResponse openRegion(final RpcController controller,<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>      final OpenRegionRequest request) throws ServiceException {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    requestCount.increment();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    if (request.hasServerStartCode()) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>      // check that we are the same server that this RPC is intended for.<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>      long serverStartCode = request.getServerStartCode();<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>      if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>            "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>            + regionServer.serverName));<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    }<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    OpenRegionResponse.Builder builder = OpenRegionResponse.newBuilder();<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    final int regionCount = request.getOpenInfoCount();<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    final Map&lt;TableName, HTableDescriptor&gt; htds = new HashMap&lt;&gt;(regionCount);<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>    final boolean isBulkAssign = regionCount &gt; 1;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    try {<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      checkOpen();<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    } catch (IOException ie) {<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      TableName tableName = null;<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>      if (regionCount == 1) {<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>        RegionInfo ri = request.getOpenInfo(0).getRegion();<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>        if (ri != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>          tableName = ProtobufUtil.toTableName(ri.getTableName());<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        }<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (!TableName.META_TABLE_NAME.equals(tableName)) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        throw new ServiceException(ie);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      // We are assigning meta, wait a little for regionserver to finish initialization.<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>      int timeout = regionServer.conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT) &gt;&gt; 2; // Quarter of RPC timeout<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      long endTime = System.currentTimeMillis() + timeout;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      synchronized (regionServer.online) {<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>        try {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>          while (System.currentTimeMillis() &lt;= endTime<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              &amp;&amp; !regionServer.isStopped() &amp;&amp; !regionServer.isOnline()) {<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            regionServer.online.wait(regionServer.msgInterval);<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>          }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>          checkOpen();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>        } catch (InterruptedException t) {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          Thread.currentThread().interrupt();<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>          throw new ServiceException(t);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>        } catch (IOException e) {<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>          throw new ServiceException(e);<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        }<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>      }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    }<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span><a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    long masterSystemTime = request.hasMasterSystemTime() ? request.getMasterSystemTime() : -1;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span><a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>    for (RegionOpenInfo regionOpenInfo : request.getOpenInfoList()) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      final HRegionInfo region = HRegionInfo.convert(regionOpenInfo.getRegion());<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>      HTableDescriptor htd;<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      try {<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        String encodedName = region.getEncodedName();<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>        byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>        final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        if (onlineRegion != null) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          // The region is already online. This should not happen any more.<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>          String error = "Received OPEN for the region:"<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>            + region.getRegionNameAsString() + ", which is already online";<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>          regionServer.abort(error);<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          throw new IOException(error);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>        }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>        LOG.info("Open " + region.getRegionNameAsString());<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span><a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>        final Boolean previous = regionServer.regionsInTransitionInRS.putIfAbsent(<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>          encodedNameBytes, Boolean.TRUE);<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (Boolean.FALSE.equals(previous)) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          if (regionServer.getFromOnlineRegions(encodedName) != null) {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>            // There is a close in progress. This should not happen any more.<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>            String error = "Received OPEN for the region:"<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>              + region.getRegionNameAsString() + ", which we are already trying to CLOSE";<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>            regionServer.abort(error);<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>            throw new IOException(error);<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          }<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>          regionServer.regionsInTransitionInRS.put(encodedNameBytes, Boolean.TRUE);<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        }<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span><a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        if (Boolean.TRUE.equals(previous)) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>          // An open is in progress. This is supported, but let's log this.<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>          LOG.info("Receiving OPEN for the region:" +<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            region.getRegionNameAsString() + ", which we are already trying to OPEN"<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>              + " - ignoring this new request for this region.");<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>        }<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span><a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        // We are opening this region. If it moves back and forth for whatever reason, we don't<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        // want to keep returning the stale moved record while we are opening/if we close again.<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        regionServer.removeFromMovedRegions(region.getEncodedName());<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>        if (previous == null || !previous.booleanValue()) {<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          // check if the region to be opened is marked in recovering state in ZK<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>          if (ZKSplitLog.isRegionMarkedRecoveringInZK(regionServer.getZooKeeper(),<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>              region.getEncodedName())) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            // Check if current region open is for distributedLogReplay. This check is to support<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>            // rolling restart/upgrade where we want to Master/RS see same configuration<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>            if (!regionOpenInfo.hasOpenForDistributedLogReplay()<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>                  || regionOpenInfo.getOpenForDistributedLogReplay()) {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>              regionServer.recoveringRegions.put(region.getEncodedName(), null);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>            } else {<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>              // Remove stale recovery region from ZK when we open region not for recovering which<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>              // could happen when turn distributedLogReplay off from on.<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              List&lt;String&gt; tmpRegions = new ArrayList&lt;&gt;();<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>              tmpRegions.add(region.getEncodedName());<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>              ZKSplitLog.deleteRecoveringRegionZNodes(regionServer.getZooKeeper(),<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>                tmpRegions);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>            }<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          }<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>          htd = htds.get(region.getTable());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>          if (htd == null) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>            htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            htds.put(region.getTable(), htd);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>          }<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>          if (htd == null) {<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>            throw new IOException("Missing table descriptor for " + region.getEncodedName());<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>          }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>          // If there is no action in progress, we can submit a specific handler.<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          // Need to pass the expected version in the constructor.<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>          if (region.isMetaRegion()) {<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>            regionServer.service.submit(new OpenMetaHandler(<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>              regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>          } else {<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>            if (regionOpenInfo.getFavoredNodesCount() &gt; 0) {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>              regionServer.updateRegionFavoredNodesMapping(region.getEncodedName(),<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>                  regionOpenInfo.getFavoredNodesList());<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>            }<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>            if (htd.getPriority() &gt;= HConstants.ADMIN_QOS || region.getTable().isSystemTable()) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>              regionServer.service.submit(new OpenPriorityRegionHandler(<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>            } else {<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>              regionServer.service.submit(new OpenRegionHandler(<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>            }<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          }<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span><a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>        builder.addOpeningState(RegionOpeningState.OPENED);<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>      } catch (KeeperException zooKeeperEx) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>        LOG.error("Can't retrieve recovering state from zookeeper", zooKeeperEx);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>        throw new ServiceException(zooKeeperEx);<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>      } catch (IOException ie) {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>        LOG.warn("Failed opening region " + region.getRegionNameAsString(), ie);<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>        if (isBulkAssign) {<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>          builder.addOpeningState(RegionOpeningState.FAILED_OPENING);<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>        } else {<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>          throw new ServiceException(ie);<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>        }<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>      }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    return builder.build();<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  }<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span><a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>  /**<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   *  Wamrmup a region on this server.<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>   *<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>   * This method should only be called by Master. It synchrnously opens the region and<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>   * closes the region bringing the most important pages in cache.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>   * &lt;p&gt;<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>   *<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>   * @param controller the RPC controller<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>   * @param request the request<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>   * @throws ServiceException<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>   */<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>  @Override<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>  public WarmupRegionResponse warmupRegion(final RpcController controller,<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>      final WarmupRegionRequest request) throws ServiceException {<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    RegionInfo regionInfo = request.getRegionInfo();<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>    final HRegionInfo region = HRegionInfo.convert(regionInfo);<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>    HTableDescriptor htd;<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    WarmupRegionResponse response = WarmupRegionResponse.getDefaultInstance();<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span><a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>    try {<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>      checkOpen();<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>      String encodedName = region.getEncodedName();<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>      byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>      final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span><a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>      if (onlineRegion != null) {<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        LOG.info("Region already online. Skipping warming up " + region);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>        return response;<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>      }<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span><a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      if (LOG.isDebugEnabled()) {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        LOG.debug("Warming up Region " + region.getRegionNameAsString());<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span><a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>      htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>      if (regionServer.getRegionsInTransitionInRS().containsKey(encodedNameBytes)) {<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>        LOG.info("Region is in transition. Skipping warmup " + region);<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>        return response;<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span><a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>      HRegion.warmupHRegion(region, htd, regionServer.getWAL(region),<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>          regionServer.getConfiguration(), regionServer, null);<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span><a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    } catch (IOException ie) {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>      LOG.error("Failed warming up region " + region.getRegionNameAsString(), ie);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>      throw new ServiceException(ie);<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>    }<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span><a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    return response;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>  }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>  /**<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>   * Replay the given changes when distributedLogReplay WAL edits from a failed RS. The guarantee is<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>   * that the given mutations will be durable on the receiving RS if this method returns without any<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>   * exception.<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>   * @param controller the RPC controller<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>   * @param request the request<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>   * @throws ServiceException<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>   */<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  @Override<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  @QosPriority(priority = HConstants.REPLAY_QOS)<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  public ReplicateWALEntryResponse replay(final RpcController controller,<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    CellScanner cells = ((HBaseRpcController) controller).cellScanner();<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    try {<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>      checkOpen();<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>      List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      if (entries == null || entries.isEmpty()) {<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>        // empty input<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>      }<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>      ByteString regionName = entries.get(0).getKey().getEncodedRegionName();<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>      Region region = regionServer.getRegionByEncodedName(regionName.toStringUtf8());<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>      RegionCoprocessorHost coprocessorHost =<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>          ServerRegionReplicaUtil.isDefaultReplica(region.getRegionInfo())<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>            ? region.getCoprocessorHost()<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>            : null; // do not invoke coprocessors if this is a secondary region replica<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>      List&lt;Pair&lt;WALKey, WALEdit&gt;&gt; walEntries = new ArrayList&lt;&gt;();<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span><a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      // Skip adding the edits to WAL if this is a secondary region replica<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>      boolean isPrimary = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>      Durability durability = isPrimary ? Durability.USE_DEFAULT : Durability.SKIP_WAL;<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span><a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>      for (WALEntry entry : entries) {<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>        if (!regionName.equals(entry.getKey().getEncodedRegionName())) {<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>          throw new NotServingRegionException("Replay request contains entries from multiple " +<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>              "regions. First region:" + regionName.toStringUtf8() + " , other region:"<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>              + entry.getKey().getEncodedRegionName());<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        }<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        if (regionServer.nonceManager != null &amp;&amp; isPrimary) {<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>          long nonceGroup = entry.getKey().hasNonceGroup()<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>            ? entry.getKey().getNonceGroup() : HConstants.NO_NONCE;<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>          long nonce = entry.getKey().hasNonce() ? entry.getKey().getNonce() : HConstants.NO_NONCE;<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>          regionServer.nonceManager.reportOperationFromWal(<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>              nonceGroup,<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>              nonce,<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>              entry.getKey().getWriteTime());<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>        }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>        Pair&lt;WALKey, WALEdit&gt; walEntry = (coprocessorHost == null) ? null : new Pair&lt;&gt;();<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>        List&lt;WALSplitter.MutationReplay&gt; edits = WALSplitter.getMutationsFromWALEntry(entry,<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          cells, walEntry, durability);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        if (coprocessorHost != null) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>          // Start coprocessor replay here. The coprocessor is for each WALEdit instead of a<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>          // KeyValue.<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          if (coprocessorHost.preWALRestore(region.getRegionInfo(), walEntry.getFirst(),<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>            walEntry.getSecond())) {<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>            // if bypass this log entry, ignore it ...<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>            continue;<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>          }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>          walEntries.add(walEntry);<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>        }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>        if(edits!=null &amp;&amp; !edits.isEmpty()) {<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>          long replaySeqId = (entry.getKey().hasOrigSequenceNumber()) ?<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>            entry.getKey().getOrigSequenceNumber() : entry.getKey().getLogSequenceNumber();<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>          OperationStatus[] result = doReplayBatchOp(region, edits, replaySeqId);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>          // check if it's a partial success<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>          for (int i = 0; result != null &amp;&amp; i &lt; result.length; i++) {<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>            if (result[i] != OperationStatus.SUCCESS) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>              throw new IOException(result[i].getExceptionMsg());<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>            }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>          }<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>        }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      }<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span><a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      //sync wal at the end because ASYNC_WAL is used above<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      WAL wal = getWAL(region);<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      if (wal != null) {<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>        wal.sync();<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      }<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      if (coprocessorHost != null) {<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>        for (Pair&lt;WALKey, WALEdit&gt; entry : walEntries) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>          coprocessorHost.postWALRestore(region.getRegionInfo(), entry.getFirst(),<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>            entry.getSecond());<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        }<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      }<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    } catch (IOException ie) {<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      throw new ServiceException(ie);<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    } finally {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>        regionServer.metricsRegionServer.updateReplay(<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      }<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>  }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span><a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>  WAL getWAL(Region region) {<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    return ((HRegion)region).getWAL();<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>  }<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  /**<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>   * Replicate WAL entries on the region server.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>   *<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>   * @param controller the RPC controller<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>   * @param request the request<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>   * @throws ServiceException<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>   */<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>  @Override<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>  @QosPriority(priority=HConstants.REPLICATION_QOS)<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>  public ReplicateWALEntryResponse replicateWALEntry(final RpcController controller,<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    try {<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>      checkOpen();<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>      if (regionServer.replicationSinkHandler != null) {<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        requestCount.increment();<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>        List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>        CellScanner cellScanner = ((HBaseRpcController)controller).cellScanner();<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        regionServer.getRegionServerCoprocessorHost().preReplicateLogEntries(entries, cellScanner);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>        regionServer.replicationSinkHandler.replicateLogEntries(entries, cellScanner,<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>          request.getReplicationClusterId(), request.getSourceBaseNamespaceDirPath(),<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>          request.getSourceHFileArchiveDirPath());<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        regionServer.getRegionServerCoprocessorHost().postReplicateLogEntries(entries, cellScanner);<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>      } else {<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        throw new ServiceException("Replication services are not initialized yet");<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>      }<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>    } catch (IOException ie) {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>      throw new ServiceException(ie);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>    }<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>  }<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>  /**<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>   * Roll the WAL writer of the region server.<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>   * @param controller the RPC controller<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>   * @param request the request<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>   * @throws ServiceException<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>   */<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>  @Override<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  public RollWALWriterResponse rollWALWriter(final RpcController controller,<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>      final RollWALWriterRequest request) throws ServiceException {<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>    try {<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>      checkOpen();<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>      requestCount.increment();<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>      regionServer.getRegionServerCoprocessorHost().preRollWALWriterRequest();<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      regionServer.walRoller.requestRollAll();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>      regionServer.getRegionServerCoprocessorHost().postRollWALWriterRequest();<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>      RollWALWriterResponse.Builder builder = RollWALWriterResponse.newBuilder();<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>      return builder.build();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    } catch (IOException ie) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new ServiceException(ie);<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>    }<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>  }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>  /**<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>   * Split a region on the region server.<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>   *<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>   * @param controller the RPC controller<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>   * @param request the request<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>   * @throws ServiceException<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>   */<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>  @Override<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>  public SplitRegionResponse splitRegion(final RpcController controller,<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>      final SplitRegionRequest request) throws ServiceException {<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>    try {<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>      checkOpen();<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>      requestCount.increment();<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>      Region region = getRegion(request.getRegion());<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>      region.startRegionOperation(Operation.SPLIT_REGION);<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>      if (region.getRegionInfo().getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>        throw new IOException("Can't split replicas directly. "<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>            + "Replicas are auto-split when their primary is split.");<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>      }<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>      LOG.info("Splitting " + region.getRegionInfo().getRegionNameAsString());<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      region.flush(true);<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>      byte[] splitPoint = null;<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>      if (request.hasSplitPoint()) {<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>        splitPoint = request.getSplitPoint().toByteArray();<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      }<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>      ((HRegion)region).forceSplit(splitPoint);<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>      regionServer.compactSplitThread.requestSplit(region, ((HRegion)region).checkSplit(),<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>        RpcServer.getRequestUser());<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>      return SplitRegionResponse.newBuilder().build();<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    } catch (DroppedSnapshotException ex) {<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      throw new ServiceException(ex);<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>    } catch (IOException ie) {<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>      throw new ServiceException(ie);<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>    }<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>  }<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span><a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>  /**<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>   * Stop the region server.<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>   *<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>   * @param controller the RPC controller<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>   * @param request the request<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>   * @throws ServiceException<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>   */<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>  @Override<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>  public StopServerResponse stopServer(final RpcController controller,<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>      final StopServerRequest request) throws ServiceException {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>    requestCount.increment();<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    String reason = request.getReason();<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    regionServer.stop(reason);<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>    return StopServerResponse.newBuilder().build();<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>  }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>  @Override<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>  public UpdateFavoredNodesResponse updateFavoredNodes(RpcController controller,<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      UpdateFavoredNodesRequest request) throws ServiceException {<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    List&lt;UpdateFavoredNodesRequest.RegionUpdateInfo&gt; openInfoList = request.getUpdateInfoList();<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>    UpdateFavoredNodesResponse.Builder respBuilder = UpdateFavoredNodesResponse.newBuilder();<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>    for (UpdateFavoredNodesRequest.RegionUpdateInfo regionUpdateInfo : openInfoList) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>      HRegionInfo hri = HRegionInfo.convert(regionUpdateInfo.getRegion());<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>      if (regionUpdateInfo.getFavoredNodesCount() &gt; 0) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>        regionServer.updateRegionFavoredNodesMapping(hri.getEncodedName(),<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>          regionUpdateInfo.getFavoredNodesList());<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>      }<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>    }<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>    respBuilder.setResponse(openInfoList.size());<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>    return respBuilder.build();<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>  }<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span><a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>  /**<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>   * Atomically bulk load several HFiles into an open region<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>   * @return true if successful, false is failed but recoverably (no action)<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>   * @throws ServiceException if failed unrecoverably<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>   */<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>  @Override<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>  public BulkLoadHFileResponse bulkLoadHFile(final RpcController controller,<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>      final BulkLoadHFileRequest request) throws ServiceException {<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>    long start = EnvironmentEdgeManager.currentTime();<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    try {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>      checkOpen();<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      requestCount.increment();<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      Region region = getRegion(request.getRegion());<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      boolean bypass = false;<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      boolean loaded = false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>      Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span><a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (!request.hasBulkToken()) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        // Old style bulk load. This will not be supported in future releases<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        List&lt;Pair&lt;byte[], String&gt;&gt; familyPaths = new ArrayList&lt;&gt;(request.getFamilyPathCount());<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>        for (FamilyPath familyPath : request.getFamilyPathList()) {<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>          familyPaths.add(new Pair&lt;&gt;(familyPath.getFamily().toByteArray(), familyPath.getPath()));<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>        }<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>        if (region.getCoprocessorHost() != null) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>          bypass = region.getCoprocessorHost().preBulkLoadHFile(familyPaths);<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>        }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>        try {<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>          if (!bypass) {<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>            map = region.bulkLoadHFiles(familyPaths, request.getAssignSeqNum(), null,<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>                request.getCopyFile());<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>            if (map != null) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>              loaded = true;<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>            }<a name="line.2148"></a>
-<span class="sourceLineNo">2149</sp

<TRUNCATED>

[23/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index e0fdbeb..441b5c6 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2017 The Apache Software Foundation</copyright>
     <item>
       <title>File: 2145,
-             Errors: 14179,
+             Errors: 14180,
              Warnings: 0,
              Infos: 0
       </title>
@@ -18941,7 +18941,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  2
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index f54922f..326cb56 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -1029,6 +1029,7 @@
 <li><a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">HFileBlockIndex.ByteArrayKeyBlockIndexReader</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">HFileBlockIndex.CellBasedKeyBlockIndexReader</a></li>
 <li><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">HFileCleaner</a></li>
+<li><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">HFileCleaner.HFileDeleteTask</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">HFileContext</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">HFileContextBuilder</a></li>
 <li><a href="org/apache/hadoop/hbase/util/hbck/HFileCorruptionChecker.html" title="class in org.apache.hadoop.hbase.util.hbck" target="classFrame">HFileCorruptionChecker</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index d7b0340..0d7f560 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -1029,6 +1029,7 @@
 <li><a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.ByteArrayKeyBlockIndexReader</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.CellBasedKeyBlockIndexReader</a></li>
 <li><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></li>
+<li><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContextBuilder</a></li>
 <li><a href="org/apache/hadoop/hbase/util/hbck/HFileCorruptionChecker.html" title="class in org.apache.hadoop.hbase.util.hbck">HFileCorruptionChecker</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 7020e49..0cd7e0c 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3775,21 +3775,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Sat Apr  1 02:42:17 UTC 2017"</code></td>
+<td class="colLast"><code>"Sat Apr  1 03:12:12 UTC 2017"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"5f98ad2053ddc31e0abc6863478db594e4447cf8"</code></td>
+<td class="colLast"><code>"9facfa550f1e7386be3a04d84f7e8013f5002965"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"306d65abffe57939b4c4f0760140a19e"</code></td>
+<td class="colLast"><code>"0baaa8302857e9dd57f3052599c49b90"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -13632,12 +13632,80 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD">DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD</a></code></td>
+<td class="colLast"><code>67108864</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE">DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE</a></code></td>
+<td class="colLast"><code>1048576</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE">DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE</a></code></td>
+<td class="colLast"><code>1048576</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.HFILE_DELETE_THROTTLE_THRESHOLD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#HFILE_DELETE_THROTTLE_THRESHOLD">HFILE_DELETE_THROTTLE_THRESHOLD</a></code></td>
+<td class="colLast"><code>"hbase.regionserver.thread.hfilecleaner.throttle"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.LARGE_HFILE_DELETE_QUEUE_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#LARGE_HFILE_DELETE_QUEUE_SIZE">LARGE_HFILE_DELETE_QUEUE_SIZE</a></code></td>
+<td class="colLast"><code>"hbase.regionserver.hfilecleaner.large.queue.size"</code></td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#MASTER_HFILE_CLEANER_PLUGINS">MASTER_HFILE_CLEANER_PLUGINS</a></code></td>
 <td class="colLast"><code>"hbase.master.hfilecleaner.plugins"</code></td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.SMALL_HFILE_DELETE_QUEUE_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#SMALL_HFILE_DELETE_QUEUE_SIZE">SMALL_HFILE_DELETE_QUEUE_SIZE</a></code></td>
+<td class="colLast"><code>"hbase.regionserver.hfilecleaner.small.queue.size"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.master.cleaner.org.apache.hadoop.hbase.master.cleaner.HFileCleaner.HFileDeleteTask</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.HFileDeleteTask.MAX_WAIT">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;final&nbsp;long</code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#MAX_WAIT">MAX_WAIT</a></code></td>
+<td class="colLast"><code>60000L</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.HFileDeleteTask.WAIT_UNIT">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;final&nbsp;long</code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#WAIT_UNIT">WAIT_UNIT</a></code></td>
+<td class="colLast"><code>1000L</code></td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 6257948..89d1ea5 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -10833,6 +10833,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanup--">cleanup()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#cleanup--">cleanup()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.html#cleanup--">cleanup()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MobCompactionChore.html#cleanup--">cleanup()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MobCompactionChore.html" title="class in org.apache.hadoop.hbase.master">MobCompactionChore</a></dt>
@@ -15863,6 +15865,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#consumeRead-long-">consumeRead(long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html" title="class in org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#consumerLoop-java.util.concurrent.BlockingQueue-">consumerLoop(BlockingQueue&lt;HFileCleaner.HFileDeleteTask&gt;)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#consumerScheduled">consumerScheduled</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#consumeWrite-long-">consumeWrite(long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html" title="class in org.apache.hadoop.hbase.quotas">NoopQuotaLimiter</a></dt>
@@ -16981,6 +16985,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlockCountsPerFile.html#countData">countData</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlockCountsPerFile.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheUtil.CachedBlockCountsPerFile</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#countDeletedFiles-boolean-">countDeletedFiles(boolean)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReaderThread.html#countDistinctRowKeysAndHFiles-org.apache.hadoop.hbase.regionserver.wal.WALEdit-">countDistinctRowKeysAndHFiles(WALEdit)</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReaderThread.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReaderThread</a></dt>
 <dd>
 <div class="block">Count the number of different row keys in the given edit because of mini-batching.</div>
@@ -21036,6 +21042,8 @@
 <dd>
 <div class="block">Refresh cache, by default, every 5 minutes</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD">DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupCommands.HistoryCommand.html#DEFAULT_HISTORY_LENGTH">DEFAULT_HISTORY_LENGTH</a></span> - Static variable in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupCommands.HistoryCommand.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupCommands.HistoryCommand</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#DEFAULT_HOST">DEFAULT_HOST</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
@@ -21098,6 +21106,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/Strings.html#DEFAULT_KEYVALUE_SEPARATOR">DEFAULT_KEYVALUE_SEPARATOR</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/Strings.html" title="class in org.apache.hadoop.hbase.util">Strings</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE">DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/Constants.html#DEFAULT_LISTEN_PORT">DEFAULT_LISTEN_PORT</a></span> - Static variable in interface org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/Constants.html" title="interface in org.apache.hadoop.hbase.rest">Constants</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/ThriftServer.html#DEFAULT_LISTEN_PORT">DEFAULT_LISTEN_PORT</a></span> - Static variable in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftServer.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServer</a></dt>
@@ -21466,6 +21476,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_TIME_MS">DEFAULT_SLOW_SYNC_TIME_MS</a></span> - Static variable 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>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE">DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcClient.html#DEFAULT_SOCKET_TIMEOUT_CONNECT">DEFAULT_SOCKET_TIMEOUT_CONNECT</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcClient.html#DEFAULT_SOCKET_TIMEOUT_READ">DEFAULT_SOCKET_TIMEOUT_READ</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a></dt>
@@ -22243,10 +22255,14 @@
 <dd>
 <div class="block">Delete if exists.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#deletedLargeFiles">deletedLargeFiles</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/DeletionListener.html#deletedLatch">deletedLatch</a></span> - Variable in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/DeletionListener.html" title="class in org.apache.hadoop.hbase.zookeeper">DeletionListener</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#deletedQueues">deletedQueues</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html" title="class in org.apache.hadoop.hbase.replication.regionserver">DumpReplicationQueues</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#deletedSmallFiles">deletedSmallFiles</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html#deleteEntry-long-">deleteEntry(long)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFormatReader.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALFormatReader</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html#deleteFamily-java.lang.String-">deleteFamily(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a></dt>
@@ -22273,8 +22289,18 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/favored/FavoredNodesManager.html#deleteFavoredNodesForRegions-java.util.Collection-">deleteFavoredNodesForRegions(Collection&lt;HRegionInfo&gt;)</a></span> - Method in class org.apache.hadoop.hbase.favored.<a href="org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#deleteFile-org.apache.hadoop.fs.FileStatus-">deleteFile(FileStatus)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>
+<div class="block">Construct an <a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><code>HFileCleaner.HFileDeleteTask</code></a> for each file to delete and add into the correct queue</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/RegionMover.html#deleteFile-java.lang.String-">deleteFile(String)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/RegionMover.html" title="class in org.apache.hadoop.hbase.util">RegionMover</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#deleteFiles-java.lang.Iterable-">deleteFiles(Iterable&lt;FileStatus&gt;)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a></dt>
+<dd>
+<div class="block">Delete the given files</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#deleteFiles-java.lang.Iterable-">deleteFiles(Iterable&lt;FileStatus&gt;)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.html#deleteFromFs-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">deleteFromFs(MasterProcedureEnv)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DeleteColumnFamilyProcedure</a></dt>
 <dd>
 <div class="block">Remove the column family from the file system</div>
@@ -23437,6 +23463,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#dispatch-org.apache.hadoop.hbase.ipc.CallRunner-">dispatch(CallRunner)</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcScheduler</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#dispatch-org.apache.hadoop.hbase.master.cleaner.HFileCleaner.HFileDeleteTask-">dispatch(HFileCleaner.HFileDeleteTask)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HRegionInfo.html#DISPLAY_KEYS_KEY">DISPLAY_KEYS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionRequest.DisplayCompactionType.html#DisplayCompactionType--">DisplayCompactionType()</a></span> - Constructor for enum org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionRequest.DisplayCompactionType.html" title="enum in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequest.DisplayCompactionType</a></dt>
@@ -23744,6 +23772,8 @@
 <dd>
 <div class="block">Call is done.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#done">done</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/SplitLogManager.TaskBatch.html#done">done</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/SplitLogManager.TaskBatch.html" title="class in org.apache.hadoop.hbase.master">SplitLogManager.TaskBatch</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html#done--">done()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.querymatcher.<a href="org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.querymatcher">ColumnTracker</a></dt>
@@ -27822,6 +27852,8 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.FileWriteAccessor.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="typeNameLink">FileIOEngine.FileWriteAccessor</span></a> - Class in <a href="org/apache/hadoop/hbase/io/hfile/bucket/package-summary.html">org.apache.hadoop.hbase.io.hfile.bucket</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#fileLength">fileLength</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/ReaderBase.html#fileLength">fileLength</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/ReaderBase.html" title="class in org.apache.hadoop.hbase.regionserver.wal">ReaderBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#fileLengthAtLastSync">fileLengthAtLastSync</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
@@ -27872,6 +27904,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#filenum">filenum</a></span> - Variable 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>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#filePath">filePath</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreFileWriter.Builder.html#filePath">filePath</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreFileWriter.Builder.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter.Builder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/FileIOEngine.html#filePaths">filePaths</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>
@@ -32499,6 +32533,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.TableCoprocessorAttribute.html#getClassName--">getClassName()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.TableCoprocessorAttribute.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost.TableCoprocessorAttribute</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getCleanerThreads--">getCleanerThreads()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ClusterConnection.html#getClient-org.apache.hadoop.hbase.ServerName-">getClient(ServerName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a></dt>
 <dd>
 <div class="block">Establishes a connection to the region server at the specified address, and returns
@@ -36785,6 +36821,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#getLargeCompactionThreadNum--">getLargeCompactionThreadNum()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactSplitThread.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplitThread</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getLargeQueueSize--">getLargeQueueSize()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreUtils.html#getLargestFile-java.util.Collection-">getLargestFile(Collection&lt;StoreFile&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreUtils.html" title="class in org.apache.hadoop.hbase.regionserver">StoreUtils</a></dt>
 <dd>
 <div class="block">Gets the largest file (with reader) out of the list of files.</div>
@@ -39530,6 +39568,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html#getNumOfCells--">getNumOfCells()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getNumOfDeletedLargeFiles--">getNumOfDeletedLargeFiles()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getNumOfDeletedSmallFiles--">getNumOfDeletedSmallFiles()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#getNumOfSegments--">getNumOfSegments()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CompositeImmutableSegment</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ImmutableSegment.html#getNumOfSegments--">getNumOfSegments()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">ImmutableSegment</a></dt>
@@ -42560,6 +42602,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SingleResponse.Entry.html#getResult--">getResult()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SingleResponse.Entry.html" title="class in org.apache.hadoop.hbase.client">SingleResponse.Entry</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#getResult--">getResult()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#getResult--">getResult()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.CoprocessorOperationWithResult</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
@@ -44242,6 +44286,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Store.html#getSmallestReadPoint--">getSmallestReadPoint()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getSmallQueueSize--">getSmallQueueSize()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.html#getSnapshot--">getSnapshot()</a></span> - Method in class org.apache.hadoop.hbase.master.snapshot.<a href="org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.html" title="class in org.apache.hadoop.hbase.master.snapshot">TakeSnapshotHandler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/SnapshotSentinel.html#getSnapshot--">getSnapshot()</a></span> - Method in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a></dt>
@@ -46316,6 +46362,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactionRequest.CompactionPartitionId.html#getThreshold--">getThreshold()</a></span> - Method in class org.apache.hadoop.hbase.mob.compactions.<a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactionRequest.CompactionPartitionId.html" title="class in org.apache.hadoop.hbase.mob.compactions">PartitionedMobCompactionRequest.CompactionPartitionId</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getThrottlePoint--">getThrottlePoint()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html#getThrottlePoint--">getThrottlePoint()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionConfiguration</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottleSettings.html#getThrottleType--">getThrottleType()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleSettings.html" title="class in org.apache.hadoop.hbase.quotas">ThrottleSettings</a></dt>
@@ -50632,6 +50680,8 @@
 <div class="block">Conf key for the frequency to attempt to refresh the cache of hfiles currently used in
  snapshots (ms)</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#HFILE_DELETE_THROTTLE_THRESHOLD">HFILE_DELETE_THROTTLE_THRESHOLD</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#HFILE_NAME_PATTERN">HFILE_NAME_PATTERN</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreFileInfo.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileInfo</a></dt>
 <dd>
 <div class="block">Regex that will work for hfiles</div>
@@ -50825,6 +50875,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/HMaster.html#hfileCleaner">hfileCleaner</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">HFileCleaner.HFileDeleteTask</span></a> - Class in <a href="org/apache/hadoop/hbase/master/cleaner/package-summary.html">org.apache.hadoop.hbase.master.cleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileContext</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">This carries the information on some of the meta data about the HFile.</div>
@@ -50879,6 +50931,8 @@
 <dd>
 <div class="block">Do data block encoding with specified options.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#HFileDeleteTask-org.apache.hadoop.fs.FileStatus-">HFileDeleteTask(FileStatus)</a></span> - Constructor for class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/FSUtils.HFileFilter.html#HFileFilter-org.apache.hadoop.fs.FileSystem-">HFileFilter(FileSystem)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/FSUtils.HFileFilter.html" title="class in org.apache.hadoop.hbase.util">FSUtils.HFileFilter</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/mapreduce/HFileInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">HFileInputFormat</span></a> - Class in <a href="org/apache/hadoop/hbase/mapreduce/package-summary.html">org.apache.hadoop.hbase.mapreduce</a></dt>
@@ -58689,6 +58743,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/util/ByteSlot.html#LARGE_GROW_SIZE_THRESHOLD">LARGE_GROW_SIZE_THRESHOLD</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.util.<a href="org/apache/hadoop/hbase/procedure2/util/ByteSlot.html" title="class in org.apache.hadoop.hbase.procedure2.util">ByteSlot</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#LARGE_HFILE_DELETE_QUEUE_SIZE">LARGE_HFILE_DELETE_QUEUE_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#largeFileQueue">largeFileQueue</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#largeQueueSize">largeQueueSize</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CellSet.html#last--">last()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CellSet.html" title="class in org.apache.hadoop.hbase.regionserver">CellSet</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html#last--">last()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.html" title="class in org.apache.hadoop.hbase.regionserver">CompositeImmutableSegment</a></dt>
@@ -60995,6 +61055,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileLinkCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></dt>
@@ -64074,6 +64136,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/vint/UVLongTool.html#MAX_VALUE_BYTES">MAX_VALUE_BYTES</a></span> - Static variable in class org.apache.hadoop.hbase.util.vint.<a href="org/apache/hadoop/hbase/util/vint/UVLongTool.html" title="class in org.apache.hadoop.hbase.util.vint">UVLongTool</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#MAX_WAIT">MAX_WAIT</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SimpleRequestController.TaskCountChecker.html#MAX_WAITING_TIME">MAX_WAITING_TIME</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SimpleRequestController.TaskCountChecker.html" title="class in org.apache.hadoop.hbase.client">SimpleRequestController.TaskCountChecker</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/TBoundedThreadPoolServer.html#MAX_WORKER_THREADS_CONF_KEY">MAX_WORKER_THREADS_CONF_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/TBoundedThreadPoolServer.html" title="class in org.apache.hadoop.hbase.thrift">TBoundedThreadPoolServer</a></dt>
@@ -70474,6 +70538,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">StochasticLoadBalancer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/LoadBalancer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange(Configuration)</a></span> - Method in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a></dt>
@@ -85371,6 +85437,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatImpl.RecordReader.html#result">result</a></span> - Variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatImpl.RecordReader.html" title="class in org.apache.hadoop.hbase.mapreduce">TableSnapshotInputFormatImpl.RecordReader</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#result">result</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#result">result</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.CoprocessorOperationWithResult</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#result">result</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
@@ -87798,6 +87866,8 @@ service.</div>
 <dd>
 <div class="block">This flag is used to indicate to sub threads when they should go down.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#running">running</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ClusterSchemaServiceImpl.html#running">running</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ClusterSchemaServiceImpl.html" title="class in org.apache.hadoop.hbase.master">ClusterSchemaServiceImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#running">running</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a></dt>
@@ -93040,6 +93110,8 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SingleResponse.Entry.html#setResult-org.apache.hadoop.hbase.client.Result-">setResult(Result)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SingleResponse.Entry.html" title="class in org.apache.hadoop.hbase.client">SingleResponse.Entry</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#setResult-boolean-">setResult(boolean)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html#setResult-T-">setResult(T)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.CoprocessorOperationWithResult.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost.CoprocessorOperationWithResult</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult(byte[])</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></dt>
@@ -95848,6 +95920,12 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#SMALL_COMPACTION_THREADS_DEFAULT">SMALL_COMPACTION_THREADS_DEFAULT</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactSplitThread.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplitThread</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#SMALL_HFILE_DELETE_QUEUE_SIZE">SMALL_HFILE_DELETE_QUEUE_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#smallFileQueue">smallFileQueue</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#smallQueueSize">smallQueueSize</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ActiveMasterManager.html#sn">sn</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ActiveMasterManager.html" title="class in org.apache.hadoop.hbase.master">ActiveMasterManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/ServerAndLoad.html#sn">sn</a></span> - Variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/ServerAndLoad.html" title="class in org.apache.hadoop.hbase.master.balancer">ServerAndLoad</a></dt>
@@ -97576,6 +97654,10 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#startHeapMemoryManager--">startHeapMemoryManager()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#startHFileDeleteThreads--">startHFileDeleteThreads()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>
+<div class="block">Start threads for hfile deletion</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.OffPeakHoursImpl.html#startHour">startHour</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.OffPeakHoursImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">OffPeakHours.OffPeakHoursImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcServer.ConnectionManager.html#startIdleScan--">startIdleScan()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcServer.ConnectionManager.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer.ConnectionManager</a></dt>
@@ -98493,6 +98575,10 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/JMXListener.html#stopConnectorServer--">stopConnectorServer()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/JMXListener.html" title="class in org.apache.hadoop.hbase">JMXListener</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#stopHFileDeleteThreads--">stopHFileDeleteThreads()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>
+<div class="block">Stop threads for hfile deletion</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcServer.ConnectionManager.html#stopIdleScan--">stopIdleScan()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcServer.ConnectionManager.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer.ConnectionManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Admin.html#stopMaster--">stopMaster()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a></dt>
@@ -101437,6 +101523,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.html#threads">threads</a></span> - Variable in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.html" title="class in org.apache.hadoop.hbase.client.example">MultiThreadedClientExample</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#threads">threads</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/util/Threads.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Threads</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
 <dd>
 <div class="block">Thread Utility</div>
@@ -101627,6 +101715,8 @@ service.</div>
 <dd>
 <div class="block">Throttle the specified namespace.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#throttlePoint">throttlePoint</a></span> - Variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html#throttlePoint">throttlePoint</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionConfiguration</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#throttler">throttler</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a></dt>
@@ -108766,6 +108856,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#WAIT_ON_REGIONSERVERS_TIMEOUT">WAIT_ON_REGIONSERVERS_TIMEOUT</a></span> - Static variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html#WAIT_UNIT">WAIT_UNIT</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#wait_when_cache">wait_when_cache</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#waitBeforeRoll">waitBeforeRoll</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html b/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
index 3209e9f..8d08be3 100644
--- a/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
@@ -89,11 +89,11 @@
 <h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
 <ul>
 <li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Public.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceAudience.Public</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Evolving</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceAudience.Private</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Stable.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Stable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Unstable.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Unstable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceAudience.LimitedPrivate</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceAudience.Private</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Evolving</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 </ul>
 </div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 ce45270..e830eb1 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -514,24 +514,24 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/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/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</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/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/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/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/conf/ConfigurationObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/conf/ConfigurationObserver.html b/devapidocs/org/apache/hadoop/hbase/conf/ConfigurationObserver.html
index aaf4703..4581d38 100644
--- a/devapidocs/org/apache/hadoop/hbase/conf/ConfigurationObserver.html
+++ b/devapidocs/org/apache/hadoop/hbase/conf/ConfigurationObserver.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplitThread.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodeLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html" title="class in org.apache.hadoop.hbase.master">HMasterCommandLine.LocalHMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html" title="class in org.apache.hadoop.hbase.regionserver">HMobStore</a>, <a href="../../../../../org/apache/hadoop/hba
 se/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>, <a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.html" title="class in org.apache.hadoop.hbase.master">MasterRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBala
 ncer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">SimpleLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcScheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">StochasticLoadBalancer</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplitThread.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodeLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html" title="class in org.apache.hadoop.hbase.master">HMasterCommandLine.LocalHMaster</a>, <a href="../../../../../org/apache/
 hadoop/hbase/regionserver/HMobStore.html" title="class in org.apache.hadoop.hbase.regionserver">HMobStore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>, <a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.html" title="class in org.apache.hadoop.hbase.master">MasterRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">SimpleLoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcScheduler</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcServer.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">StochasticLoadBalancer</a></dd>
 </dl>
 <hr>
 <br>


[07/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
index c885b3a..ac9ce7d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
@@ -1303,1942 +1303,1943 @@
 <span class="sourceLineNo">1295</span>      throw new RegionServerStoppedException("File system not available");<a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>    }<a name="line.1296"></a>
 <span class="sourceLineNo">1297</span>    if (!regionServer.isOnline()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      throw new ServerNotRunningYetException("Server is not running yet");<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    }<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>  /**<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   * @return list of blocking services and their security info classes that this server supports<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   */<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  protected List&lt;BlockingServiceAndInterface&gt; getServices() {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>    List&lt;BlockingServiceAndInterface&gt; bssi = new ArrayList&lt;&gt;(2);<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      ClientService.newReflectiveBlockingService(this),<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      ClientService.BlockingInterface.class));<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      AdminService.newReflectiveBlockingService(this),<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      AdminService.BlockingInterface.class));<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    return bssi;<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span><a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>  public InetSocketAddress getSocketAddress() {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    return isa;<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  }<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span><a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  @Override<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  public int getPriority(RequestHeader header, Message param, User user) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>    return priority.getPriority(header, param, user);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  }<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  @Override<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>  public long getDeadline(RequestHeader header, Message param) {<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>    return priority.getDeadline(header, param);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>  }<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  /*<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>   * Check if an OOME and, if so, abort immediately to avoid creating more objects.<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>   *<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>   * @param e<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>   *<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>   * @return True if we OOME'd and are aborting.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>   */<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  @Override<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>  public boolean checkOOME(final Throwable e) {<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>    return exitIfOOME(e);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  public static boolean exitIfOOME(final Throwable e ){<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>    boolean stop = false;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    try {<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (e instanceof OutOfMemoryError<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>          || (e.getCause() != null &amp;&amp; e.getCause() instanceof OutOfMemoryError)<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>          || (e.getMessage() != null &amp;&amp; e.getMessage().contains(<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>              "java.lang.OutOfMemoryError"))) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>        stop = true;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>        LOG.fatal("Run out of memory; " + RSRpcServices.class.getSimpleName()<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>          + " will abort itself immediately", e);<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    } finally {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      if (stop) {<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        Runtime.getRuntime().halt(1);<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>    }<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>    return stop;<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>  }<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span><a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>  /**<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>   * Close a region on the region server.<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>   *<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>   * @param controller the RPC controller<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>   * @param request the request<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>   * @throws ServiceException<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>   */<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  @Override<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public CloseRegionResponse closeRegion(final RpcController controller,<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      final CloseRegionRequest request) throws ServiceException {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>    final ServerName sn = (request.hasDestinationServer() ?<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>      ProtobufUtil.toServerName(request.getDestinationServer()) : null);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span><a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    try {<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>      checkOpen();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      if (request.hasServerStartCode()) {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>        // check that we are the same server that this RPC is intended for.<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>        long serverStartCode = request.getServerStartCode();<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>        if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>          throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>              "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>              + regionServer.serverName));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        }<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>      }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>      final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion());<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span><a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>      requestCount.increment();<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>      if (sn == null) {<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        LOG.info("Close " + encodedRegionName + " without moving");<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      } else {<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>        LOG.info("Close " + encodedRegionName + ", moving to " + sn);<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      boolean closed = regionServer.closeRegion(encodedRegionName, false, sn);<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>      CloseRegionResponse.Builder builder = CloseRegionResponse.newBuilder().setClosed(closed);<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>      return builder.build();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    } catch (IOException ie) {<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>      throw new ServiceException(ie);<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    }<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  }<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span><a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>  @Override<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public CloseRegionForSplitOrMergeResponse closeRegionForSplitOrMerge(<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      final RpcController controller,<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      final CloseRegionForSplitOrMergeRequest request) throws ServiceException {<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    try {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      checkOpen();<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span><a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      List&lt;String&gt; encodedRegionNameList = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      for(int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion(i));<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>        // Can be null if we're calling close on a region that's not online<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>        final Region targetRegion = regionServer.getFromOnlineRegions(encodedRegionName);<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>        if ((targetRegion != null) &amp;&amp; (targetRegion.getCoprocessorHost() != null)) {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>          targetRegion.getCoprocessorHost().preClose(false);<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>          encodedRegionNameList.add(encodedRegionName);<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      requestCount.increment();<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>      LOG.info("Close and offline " + encodedRegionNameList + " regions.");<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>      boolean closed = regionServer.closeAndOfflineRegionForSplitOrMerge(encodedRegionNameList);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      CloseRegionForSplitOrMergeResponse.Builder builder =<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>          CloseRegionForSplitOrMergeResponse.newBuilder().setClosed(closed);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      return builder.build();<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    } catch (IOException ie) {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>      throw new ServiceException(ie);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  /**<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>   * Compact a region on the region server.<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>   *<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>   * @param controller the RPC controller<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>   * @param request the request<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>   * @throws ServiceException<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>   */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>  @Override<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>  public CompactRegionResponse compactRegion(final RpcController controller,<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>      final CompactRegionRequest request) throws ServiceException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    try {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      checkOpen();<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      requestCount.increment();<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>      Region region = getRegion(request.getRegion());<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      region.startRegionOperation(Operation.COMPACT_REGION);<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>      LOG.info("Compacting " + region.getRegionInfo().getRegionNameAsString());<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>      boolean major = false;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>      byte [] family = null;<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>      Store store = null;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      if (request.hasFamily()) {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>        family = request.getFamily().toByteArray();<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>        store = region.getStore(family);<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        if (store == null) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>          throw new ServiceException(new DoNotRetryIOException("column family " +<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>              Bytes.toString(family) + " does not exist in region " +<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>              region.getRegionInfo().getRegionNameAsString()));<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>        }<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>      }<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      if (request.hasMajor()) {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>        major = request.getMajor();<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      }<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      if (major) {<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>        if (family != null) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>          store.triggerMajorCompaction();<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>        } else {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>          region.triggerMajorCompaction();<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>      }<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span><a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      String familyLogMsg = (family != null)?" for column family: " + Bytes.toString(family):"";<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      if (LOG.isTraceEnabled()) {<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>        LOG.trace("User-triggered compaction requested for region "<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>          + region.getRegionInfo().getRegionNameAsString() + familyLogMsg);<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>      }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      String log = "User-triggered " + (major ? "major " : "") + "compaction" + familyLogMsg;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>      if(family != null) {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>        regionServer.compactSplitThread.requestCompaction(region, store, log,<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      } else {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        regionServer.compactSplitThread.requestCompaction(region, log,<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>      }<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      return CompactRegionResponse.newBuilder().build();<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    } catch (IOException ie) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      throw new ServiceException(ie);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  }<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Flush a region on the region server.<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   *<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   * @param controller the RPC controller<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * @param request the request<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * @throws ServiceException<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>  @Override<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>  public FlushRegionResponse flushRegion(final RpcController controller,<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>      final FlushRegionRequest request) throws ServiceException {<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    try {<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>      checkOpen();<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>      requestCount.increment();<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>      Region region = getRegion(request.getRegion());<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>      LOG.info("Flushing " + region.getRegionInfo().getRegionNameAsString());<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      boolean shouldFlush = true;<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      if (request.hasIfOlderThanTs()) {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>        shouldFlush = region.getEarliestFlushTimeForAllStores() &lt; request.getIfOlderThanTs();<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      }<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      FlushRegionResponse.Builder builder = FlushRegionResponse.newBuilder();<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      if (shouldFlush) {<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        boolean writeFlushWalMarker =  request.hasWriteFlushWalMarker() ?<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>            request.getWriteFlushWalMarker() : false;<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>        // Go behind the curtain so we can manage writing of the flush WAL marker<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>        HRegion.FlushResultImpl flushResult = (HRegion.FlushResultImpl)<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>            ((HRegion)region).flushcache(true, writeFlushWalMarker);<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        boolean compactionNeeded = flushResult.isCompactionNeeded();<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>        if (compactionNeeded) {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>          regionServer.compactSplitThread.requestSystemCompaction(region,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>            "Compaction through user triggered flush");<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>        }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>        builder.setFlushed(flushResult.isFlushSucceeded());<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>        builder.setWroteFlushWalMarker(flushResult.wroteFlushWalMarker);<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      }<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      builder.setLastFlushTime(region.getEarliestFlushTimeForAllStores());<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      return builder.build();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>    } catch (DroppedSnapshotException ex) {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Cache flush can fail in a few places. If it fails in a critical<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // section, we get a DroppedSnapshotException and a replay of wal<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      // is required. Currently the only way to do this is a restart of<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>      // the server.<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      throw new ServiceException(ex);<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>    } catch (IOException ie) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      throw new ServiceException(ie);<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>    }<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span><a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>  @Override<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  public GetOnlineRegionResponse getOnlineRegion(final RpcController controller,<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      final GetOnlineRegionRequest request) throws ServiceException {<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    try {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      checkOpen();<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      requestCount.increment();<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      Map&lt;String, Region&gt; onlineRegions = regionServer.onlineRegions;<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      List&lt;HRegionInfo&gt; list = new ArrayList&lt;&gt;(onlineRegions.size());<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      for (Region region: onlineRegions.values()) {<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>        list.add(region.getRegionInfo());<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>      }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      Collections.sort(list);<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      return ResponseConverter.buildGetOnlineRegionResponse(list);<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } catch (IOException ie) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new ServiceException(ie);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>  }<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span><a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>  @Override<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  public GetRegionInfoResponse getRegionInfo(final RpcController controller,<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final GetRegionInfoRequest request) throws ServiceException {<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>    try {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      checkOpen();<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      requestCount.increment();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      Region region = getRegion(request.getRegion());<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      HRegionInfo info = region.getRegionInfo();<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      builder.setRegionInfo(HRegionInfo.convert(info));<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      if (request.hasCompactionState() &amp;&amp; request.getCompactionState()) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>        builder.setCompactionState(region.getCompactionState());<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      builder.setIsRecovering(region.isRecovering());<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      return builder.build();<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    } catch (IOException ie) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      throw new ServiceException(ie);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>  }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span><a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  @Override<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  public GetRegionLoadResponse getRegionLoad(RpcController controller,<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      GetRegionLoadRequest request) throws ServiceException {<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span><a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    List&lt;Region&gt; regions;<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    if (request.hasTableName()) {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>      regions = regionServer.getOnlineRegions(tableName);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>    } else {<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>      regions = regionServer.getOnlineRegions();<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    List&lt;RegionLoad&gt; rLoads = new ArrayList&lt;&gt;(regions.size());<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>    RegionLoad.Builder regionLoadBuilder = ClusterStatusProtos.RegionLoad.newBuilder();<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    RegionSpecifier.Builder regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span><a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    try {<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>      for (Region region : regions) {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>        rLoads.add(regionServer.createRegionLoad(region, regionLoadBuilder, regionSpecifier));<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      }<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>    } catch (IOException e) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>      throw new ServiceException(e);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>    }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>    GetRegionLoadResponse.Builder builder = GetRegionLoadResponse.newBuilder();<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>    builder.addAllRegionLoads(rLoads);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>    return builder.build();<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>  }<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span><a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>  /**<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>   * Get some information of the region server.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>   *<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>   * @param controller the RPC controller<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>   * @param request the request<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>   * @throws ServiceException<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>   */<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>  @Override<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>  public GetServerInfoResponse getServerInfo(final RpcController controller,<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      final GetServerInfoRequest request) throws ServiceException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    try {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      checkOpen();<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    } catch (IOException ie) {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>      throw new ServiceException(ie);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    requestCount.increment();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>    int infoPort = regionServer.infoServer != null ? regionServer.infoServer.getPort() : -1;<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>    return ResponseConverter.buildGetServerInfoResponse(regionServer.serverName, infoPort);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  }<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span><a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>  @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>  public GetStoreFileResponse getStoreFile(final RpcController controller,<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      final GetStoreFileRequest request) throws ServiceException {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    try {<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      checkOpen();<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      Region region = getRegion(request.getRegion());<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>      requestCount.increment();<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>      Set&lt;byte[]&gt; columnFamilies;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      if (request.getFamilyCount() == 0) {<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        columnFamilies = region.getTableDesc().getFamiliesKeys();<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>      } else {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>        columnFamilies = new TreeSet&lt;&gt;(Bytes.BYTES_RAWCOMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        for (ByteString cf: request.getFamilyList()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>          columnFamilies.add(cf.toByteArray());<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        }<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>      }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      int nCF = columnFamilies.size();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>      List&lt;String&gt;  fileList = region.getStoreFileList(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>        columnFamilies.toArray(new byte[nCF][]));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      GetStoreFileResponse.Builder builder = GetStoreFileResponse.newBuilder();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      builder.addAllStoreFile(fileList);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      return builder.build();<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    } catch (IOException ie) {<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      throw new ServiceException(ie);<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>    }<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  }<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span><a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>  /**<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>   * Open asynchronously a region or a set of regions on the region server.<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>   *<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>   * The opening is coordinated by ZooKeeper, and this method requires the znode to be created<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>   *  before being called. As a consequence, this method should be called only from the master.<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>   * &lt;p&gt;<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>   * Different manages states for the region are:<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>   * &lt;/p&gt;&lt;ul&gt;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>   *  &lt;li&gt;region not opened: the region opening will start asynchronously.&lt;/li&gt;<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>   *  &lt;li&gt;a close is already in progress: this is considered as an error.&lt;/li&gt;<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>   *  &lt;li&gt;an open is already in progress: this new open request will be ignored. This is important<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>   *  because the Master can do multiple requests if it crashes.&lt;/li&gt;<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>   *  &lt;li&gt;the region is already opened:  this new open request will be ignored.&lt;/li&gt;<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>   *  &lt;/ul&gt;<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * &lt;p&gt;<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * Bulk assign: If there are more than 1 region to open, it will be considered as a bulk assign.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   * For a single region opening, errors are sent through a ServiceException. For bulk assign,<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>   * errors are put in the response as FAILED_OPENING.<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>   * &lt;/p&gt;<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>   * @param controller the RPC controller<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>   * @param request the request<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>   * @throws ServiceException<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>   */<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>  @Override<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  public OpenRegionResponse openRegion(final RpcController controller,<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>      final OpenRegionRequest request) throws ServiceException {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    requestCount.increment();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    if (request.hasServerStartCode()) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>      // check that we are the same server that this RPC is intended for.<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>      long serverStartCode = request.getServerStartCode();<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>      if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>            "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>            + regionServer.serverName));<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    }<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    OpenRegionResponse.Builder builder = OpenRegionResponse.newBuilder();<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    final int regionCount = request.getOpenInfoCount();<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    final Map&lt;TableName, HTableDescriptor&gt; htds = new HashMap&lt;&gt;(regionCount);<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>    final boolean isBulkAssign = regionCount &gt; 1;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    try {<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      checkOpen();<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    } catch (IOException ie) {<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      TableName tableName = null;<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>      if (regionCount == 1) {<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>        RegionInfo ri = request.getOpenInfo(0).getRegion();<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>        if (ri != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>          tableName = ProtobufUtil.toTableName(ri.getTableName());<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        }<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (!TableName.META_TABLE_NAME.equals(tableName)) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        throw new ServiceException(ie);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      // We are assigning meta, wait a little for regionserver to finish initialization.<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>      int timeout = regionServer.conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT) &gt;&gt; 2; // Quarter of RPC timeout<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      long endTime = System.currentTimeMillis() + timeout;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      synchronized (regionServer.online) {<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>        try {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>          while (System.currentTimeMillis() &lt;= endTime<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              &amp;&amp; !regionServer.isStopped() &amp;&amp; !regionServer.isOnline()) {<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            regionServer.online.wait(regionServer.msgInterval);<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>          }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>          checkOpen();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>        } catch (InterruptedException t) {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          Thread.currentThread().interrupt();<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>          throw new ServiceException(t);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>        } catch (IOException e) {<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>          throw new ServiceException(e);<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        }<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>      }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    }<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span><a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    long masterSystemTime = request.hasMasterSystemTime() ? request.getMasterSystemTime() : -1;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span><a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>    for (RegionOpenInfo regionOpenInfo : request.getOpenInfoList()) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      final HRegionInfo region = HRegionInfo.convert(regionOpenInfo.getRegion());<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>      HTableDescriptor htd;<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      try {<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        String encodedName = region.getEncodedName();<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>        byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>        final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        if (onlineRegion != null) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          // The region is already online. This should not happen any more.<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>          String error = "Received OPEN for the region:"<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>            + region.getRegionNameAsString() + ", which is already online";<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>          regionServer.abort(error);<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          throw new IOException(error);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>        }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>        LOG.info("Open " + region.getRegionNameAsString());<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span><a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>        final Boolean previous = regionServer.regionsInTransitionInRS.putIfAbsent(<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>          encodedNameBytes, Boolean.TRUE);<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (Boolean.FALSE.equals(previous)) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          if (regionServer.getFromOnlineRegions(encodedName) != null) {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>            // There is a close in progress. This should not happen any more.<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>            String error = "Received OPEN for the region:"<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>              + region.getRegionNameAsString() + ", which we are already trying to CLOSE";<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>            regionServer.abort(error);<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>            throw new IOException(error);<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          }<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>          regionServer.regionsInTransitionInRS.put(encodedNameBytes, Boolean.TRUE);<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        }<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span><a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        if (Boolean.TRUE.equals(previous)) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>          // An open is in progress. This is supported, but let's log this.<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>          LOG.info("Receiving OPEN for the region:" +<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            region.getRegionNameAsString() + ", which we are already trying to OPEN"<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>              + " - ignoring this new request for this region.");<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>        }<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span><a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        // We are opening this region. If it moves back and forth for whatever reason, we don't<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        // want to keep returning the stale moved record while we are opening/if we close again.<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        regionServer.removeFromMovedRegions(region.getEncodedName());<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>        if (previous == null || !previous.booleanValue()) {<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          // check if the region to be opened is marked in recovering state in ZK<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>          if (ZKSplitLog.isRegionMarkedRecoveringInZK(regionServer.getZooKeeper(),<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>              region.getEncodedName())) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            // Check if current region open is for distributedLogReplay. This check is to support<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>            // rolling restart/upgrade where we want to Master/RS see same configuration<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>            if (!regionOpenInfo.hasOpenForDistributedLogReplay()<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>                  || regionOpenInfo.getOpenForDistributedLogReplay()) {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>              regionServer.recoveringRegions.put(region.getEncodedName(), null);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>            } else {<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>              // Remove stale recovery region from ZK when we open region not for recovering which<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>              // could happen when turn distributedLogReplay off from on.<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              List&lt;String&gt; tmpRegions = new ArrayList&lt;&gt;();<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>              tmpRegions.add(region.getEncodedName());<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>              ZKSplitLog.deleteRecoveringRegionZNodes(regionServer.getZooKeeper(),<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>                tmpRegions);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>            }<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          }<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>          htd = htds.get(region.getTable());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>          if (htd == null) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>            htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            htds.put(region.getTable(), htd);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>          }<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>          if (htd == null) {<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>            throw new IOException("Missing table descriptor for " + region.getEncodedName());<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>          }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>          // If there is no action in progress, we can submit a specific handler.<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          // Need to pass the expected version in the constructor.<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>          if (region.isMetaRegion()) {<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>            regionServer.service.submit(new OpenMetaHandler(<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>              regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>          } else {<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>            if (regionOpenInfo.getFavoredNodesCount() &gt; 0) {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>              regionServer.updateRegionFavoredNodesMapping(region.getEncodedName(),<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>                  regionOpenInfo.getFavoredNodesList());<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>            }<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>            if (htd.getPriority() &gt;= HConstants.ADMIN_QOS || region.getTable().isSystemTable()) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>              regionServer.service.submit(new OpenPriorityRegionHandler(<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>            } else {<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>              regionServer.service.submit(new OpenRegionHandler(<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>            }<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          }<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span><a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>        builder.addOpeningState(RegionOpeningState.OPENED);<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>      } catch (KeeperException zooKeeperEx) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>        LOG.error("Can't retrieve recovering state from zookeeper", zooKeeperEx);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>        throw new ServiceException(zooKeeperEx);<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>      } catch (IOException ie) {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>        LOG.warn("Failed opening region " + region.getRegionNameAsString(), ie);<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>        if (isBulkAssign) {<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>          builder.addOpeningState(RegionOpeningState.FAILED_OPENING);<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>        } else {<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>          throw new ServiceException(ie);<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>        }<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>      }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    return builder.build();<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  }<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span><a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>  /**<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   *  Wamrmup a region on this server.<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>   *<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>   * This method should only be called by Master. It synchrnously opens the region and<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>   * closes the region bringing the most important pages in cache.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>   * &lt;p&gt;<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>   *<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>   * @param controller the RPC controller<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>   * @param request the request<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>   * @throws ServiceException<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>   */<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>  @Override<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>  public WarmupRegionResponse warmupRegion(final RpcController controller,<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>      final WarmupRegionRequest request) throws ServiceException {<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    RegionInfo regionInfo = request.getRegionInfo();<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>    final HRegionInfo region = HRegionInfo.convert(regionInfo);<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>    HTableDescriptor htd;<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    WarmupRegionResponse response = WarmupRegionResponse.getDefaultInstance();<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span><a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>    try {<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>      checkOpen();<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>      String encodedName = region.getEncodedName();<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>      byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>      final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span><a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>      if (onlineRegion != null) {<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        LOG.info("Region already online. Skipping warming up " + region);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>        return response;<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>      }<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span><a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      if (LOG.isDebugEnabled()) {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        LOG.debug("Warming up Region " + region.getRegionNameAsString());<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span><a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>      htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>      if (regionServer.getRegionsInTransitionInRS().containsKey(encodedNameBytes)) {<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>        LOG.info("Region is in transition. Skipping warmup " + region);<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>        return response;<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span><a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>      HRegion.warmupHRegion(region, htd, regionServer.getWAL(region),<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>          regionServer.getConfiguration(), regionServer, null);<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span><a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    } catch (IOException ie) {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>      LOG.error("Failed warming up region " + region.getRegionNameAsString(), ie);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>      throw new ServiceException(ie);<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>    }<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span><a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    return response;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>  }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>  /**<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>   * Replay the given changes when distributedLogReplay WAL edits from a failed RS. The guarantee is<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>   * that the given mutations will be durable on the receiving RS if this method returns without any<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>   * exception.<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>   * @param controller the RPC controller<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>   * @param request the request<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>   * @throws ServiceException<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>   */<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  @Override<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  @QosPriority(priority = HConstants.REPLAY_QOS)<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  public ReplicateWALEntryResponse replay(final RpcController controller,<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    CellScanner cells = ((HBaseRpcController) controller).cellScanner();<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    try {<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>      checkOpen();<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>      List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      if (entries == null || entries.isEmpty()) {<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>        // empty input<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>      }<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>      ByteString regionName = entries.get(0).getKey().getEncodedRegionName();<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>      Region region = regionServer.getRegionByEncodedName(regionName.toStringUtf8());<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>      RegionCoprocessorHost coprocessorHost =<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>          ServerRegionReplicaUtil.isDefaultReplica(region.getRegionInfo())<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>            ? region.getCoprocessorHost()<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>            : null; // do not invoke coprocessors if this is a secondary region replica<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>      List&lt;Pair&lt;WALKey, WALEdit&gt;&gt; walEntries = new ArrayList&lt;&gt;();<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span><a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      // Skip adding the edits to WAL if this is a secondary region replica<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>      boolean isPrimary = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>      Durability durability = isPrimary ? Durability.USE_DEFAULT : Durability.SKIP_WAL;<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span><a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>      for (WALEntry entry : entries) {<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>        if (!regionName.equals(entry.getKey().getEncodedRegionName())) {<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>          throw new NotServingRegionException("Replay request contains entries from multiple " +<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>              "regions. First region:" + regionName.toStringUtf8() + " , other region:"<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>              + entry.getKey().getEncodedRegionName());<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        }<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        if (regionServer.nonceManager != null &amp;&amp; isPrimary) {<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>          long nonceGroup = entry.getKey().hasNonceGroup()<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>            ? entry.getKey().getNonceGroup() : HConstants.NO_NONCE;<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>          long nonce = entry.getKey().hasNonce() ? entry.getKey().getNonce() : HConstants.NO_NONCE;<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>          regionServer.nonceManager.reportOperationFromWal(<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>              nonceGroup,<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>              nonce,<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>              entry.getKey().getWriteTime());<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>        }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>        Pair&lt;WALKey, WALEdit&gt; walEntry = (coprocessorHost == null) ? null : new Pair&lt;&gt;();<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>        List&lt;WALSplitter.MutationReplay&gt; edits = WALSplitter.getMutationsFromWALEntry(entry,<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          cells, walEntry, durability);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        if (coprocessorHost != null) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>          // Start coprocessor replay here. The coprocessor is for each WALEdit instead of a<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>          // KeyValue.<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          if (coprocessorHost.preWALRestore(region.getRegionInfo(), walEntry.getFirst(),<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>            walEntry.getSecond())) {<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>            // if bypass this log entry, ignore it ...<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>            continue;<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>          }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>          walEntries.add(walEntry);<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>        }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>        if(edits!=null &amp;&amp; !edits.isEmpty()) {<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>          long replaySeqId = (entry.getKey().hasOrigSequenceNumber()) ?<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>            entry.getKey().getOrigSequenceNumber() : entry.getKey().getLogSequenceNumber();<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>          OperationStatus[] result = doReplayBatchOp(region, edits, replaySeqId);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>          // check if it's a partial success<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>          for (int i = 0; result != null &amp;&amp; i &lt; result.length; i++) {<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>            if (result[i] != OperationStatus.SUCCESS) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>              throw new IOException(result[i].getExceptionMsg());<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>            }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>          }<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>        }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      }<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span><a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      //sync wal at the end because ASYNC_WAL is used above<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      WAL wal = getWAL(region);<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      if (wal != null) {<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>        wal.sync();<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      }<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      if (coprocessorHost != null) {<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>        for (Pair&lt;WALKey, WALEdit&gt; entry : walEntries) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>          coprocessorHost.postWALRestore(region.getRegionInfo(), entry.getFirst(),<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>            entry.getSecond());<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        }<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      }<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    } catch (IOException ie) {<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      throw new ServiceException(ie);<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    } finally {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>        regionServer.metricsRegionServer.updateReplay(<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      }<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>  }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span><a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>  WAL getWAL(Region region) {<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    return ((HRegion)region).getWAL();<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>  }<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  /**<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>   * Replicate WAL entries on the region server.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>   *<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>   * @param controller the RPC controller<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>   * @param request the request<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>   * @throws ServiceException<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>   */<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>  @Override<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>  @QosPriority(priority=HConstants.REPLICATION_QOS)<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>  public ReplicateWALEntryResponse replicateWALEntry(final RpcController controller,<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    try {<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>      checkOpen();<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>      if (regionServer.replicationSinkHandler != null) {<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        requestCount.increment();<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>        List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>        CellScanner cellScanner = ((HBaseRpcController)controller).cellScanner();<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        regionServer.getRegionServerCoprocessorHost().preReplicateLogEntries(entries, cellScanner);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>        regionServer.replicationSinkHandler.replicateLogEntries(entries, cellScanner,<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>          request.getReplicationClusterId(), request.getSourceBaseNamespaceDirPath(),<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>          request.getSourceHFileArchiveDirPath());<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        regionServer.getRegionServerCoprocessorHost().postReplicateLogEntries(entries, cellScanner);<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>      } else {<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        throw new ServiceException("Replication services are not initialized yet");<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>      }<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>    } catch (IOException ie) {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>      throw new ServiceException(ie);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>    }<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>  }<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>  /**<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>   * Roll the WAL writer of the region server.<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>   * @param controller the RPC controller<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>   * @param request the request<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>   * @throws ServiceException<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>   */<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>  @Override<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  public RollWALWriterResponse rollWALWriter(final RpcController controller,<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>      final RollWALWriterRequest request) throws ServiceException {<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>    try {<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>      checkOpen();<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>      requestCount.increment();<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>      regionServer.getRegionServerCoprocessorHost().preRollWALWriterRequest();<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      regionServer.walRoller.requestRollAll();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>      regionServer.getRegionServerCoprocessorHost().postRollWALWriterRequest();<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>      RollWALWriterResponse.Builder builder = RollWALWriterResponse.newBuilder();<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>      return builder.build();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    } catch (IOException ie) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new ServiceException(ie);<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>    }<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>  }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>  /**<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>   * Split a region on the region server.<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>   *<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>   * @param controller the RPC controller<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>   * @param request the request<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>   * @throws ServiceException<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>   */<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>  @Override<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>  public SplitRegionResponse splitRegion(final RpcController controller,<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>      final SplitRegionRequest request) throws ServiceException {<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>    try {<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>      checkOpen();<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>      requestCount.increment();<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>      Region region = getRegion(request.getRegion());<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>      region.startRegionOperation(Operation.SPLIT_REGION);<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>      if (region.getRegionInfo().getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>        throw new IOException("Can't split replicas directly. "<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>            + "Replicas are auto-split when their primary is split.");<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>      }<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>      LOG.info("Splitting " + region.getRegionInfo().getRegionNameAsString());<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      region.flush(true);<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>      byte[] splitPoint = null;<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>      if (request.hasSplitPoint()) {<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>        splitPoint = request.getSplitPoint().toByteArray();<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      }<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>      ((HRegion)region).forceSplit(splitPoint);<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>      regionServer.compactSplitThread.requestSplit(region, ((HRegion)region).checkSplit(),<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>        RpcServer.getRequestUser());<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>      return SplitRegionResponse.newBuilder().build();<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    } catch (DroppedSnapshotException ex) {<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      throw new ServiceException(ex);<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>    } catch (IOException ie) {<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>      throw new ServiceException(ie);<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>    }<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>  }<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span><a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>  /**<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>   * Stop the region server.<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>   *<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>   * @param controller the RPC controller<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>   * @param request the request<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>   * @throws ServiceException<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>   */<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>  @Override<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>  public StopServerResponse stopServer(final RpcController controller,<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>      final StopServerRequest request) throws ServiceException {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>    requestCount.increment();<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    String reason = request.getReason();<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    regionServer.stop(reason);<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>    return StopServerResponse.newBuilder().build();<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>  }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>  @Override<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>  public UpdateFavoredNodesResponse updateFavoredNodes(RpcController controller,<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      UpdateFavoredNodesRequest request) throws ServiceException {<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    List&lt;UpdateFavoredNodesRequest.RegionUpdateInfo&gt; openInfoList = request.getUpdateInfoList();<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>    UpdateFavoredNodesResponse.Builder respBuilder = UpdateFavoredNodesResponse.newBuilder();<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>    for (UpdateFavoredNodesRequest.RegionUpdateInfo regionUpdateInfo : openInfoList) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>      HRegionInfo hri = HRegionInfo.convert(regionUpdateInfo.getRegion());<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>      if (regionUpdateInfo.getFavoredNodesCount() &gt; 0) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>        regionServer.updateRegionFavoredNodesMapping(hri.getEncodedName(),<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>          regionUpdateInfo.getFavoredNodesList());<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>      }<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>    }<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>    respBuilder.setResponse(openInfoList.size());<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>    return respBuilder.build();<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>  }<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span><a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>  /**<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>   * Atomically bulk load several HFiles into an open region<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>   * @return true if successful, false is failed but recoverably (no action)<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>   * @throws ServiceException if failed unrecoverably<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>   */<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>  @Override<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>  public BulkLoadHFileResponse bulkLoadHFile(final RpcController controller,<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>      final BulkLoadHFileRequest request) throws ServiceException {<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>    long start = EnvironmentEdgeManager.currentTime();<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    try {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>      checkOpen();<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      requestCount.increment();<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      Region region = getRegion(request.getRegion());<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      boolean bypass = false;<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      boolean loaded = false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>      Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span><a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (!request.hasBulkToken()) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        // Old style bulk load. This will not be supported in future releases<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        List&lt;Pair&lt;byte[], String&gt;&gt; familyPaths = new ArrayList&lt;&gt;(request.getFamilyPathCount());<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>        for (FamilyPath familyPath : request.getFamilyPathList()) {<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>          familyPaths.add(new Pair&lt;&gt;(familyPath.getFamily().toByteArray(), familyPath.getPath()));<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>        }<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>        if (region.getCoprocessorHost() != null) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>          bypass = region.getCoprocessorHost().preBulkLoadHFile(familyPaths);<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>        }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>        try {<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>          if (!bypass) {<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>            map = region.bulkLoadHFiles(familyPaths, request.getAssignSeqNum(), null,<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>                request.getCopyFile());<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>            if (map != null) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>              loaded = true;<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>            }<a name="line.2148"></a>
-<span class="sourceLineNo">2149</span>          }<a nam

<TRUNCATED>

[05/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index c86bdcf..fd6e441 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -69,13 +69,13 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.70"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.71"></a>
 <span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
@@ -118,125 +118,125 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 28, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setServerManager(ServerManager serverManager)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 28, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_serverManager = serverManager;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_serverManager__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public ServerManager getServerManager()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_serverManager;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private ServerManager m_serverManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getServerManager__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_serverManager__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_serverManager__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 26, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setFilter(String filter)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 26, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_filter = filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_filter__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public String getFilter()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_filter;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private String m_filter;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getFilter__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_filter__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_filter__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 25, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 27, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setFormat(String format)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 25, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 27, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_format = format;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_format__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public boolean getCatalogJanitorEnabled()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public String getFormat()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_catalogJanitorEnabled;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_format;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private boolean m_catalogJanitorEnabled;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private String m_format;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getFormat__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_format__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 21, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_format__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 29, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 21, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_frags = frags;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_frags__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 29, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_assignmentManager = assignmentManager;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_assignmentManager__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public AssignmentManager getAssignmentManager()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_frags;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_assignmentManager;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFrags__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private AssignmentManager m_assignmentManager;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_frags__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_assignmentManager__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_frags__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 24, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 25, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 24, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_deadServers = deadServers;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_deadServers__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 25, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public boolean getCatalogJanitorEnabled()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_deadServers;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_catalogJanitorEnabled;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getDeadServers__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private boolean m_catalogJanitorEnabled;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_deadServers__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_deadServers__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 29, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 28, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setServerManager(ServerManager serverManager)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 29, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_assignmentManager = assignmentManager;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_assignmentManager__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 28, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_serverManager = serverManager;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_serverManager__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public AssignmentManager getAssignmentManager()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public ServerManager getServerManager()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_assignmentManager;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_serverManager;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private AssignmentManager m_assignmentManager;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private ServerManager m_serverManager;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getServerManager__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_assignmentManager__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_serverManager__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 27, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setFormat(String format)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_serverManager__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 21, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 27, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_format = format;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_format__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 21, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_frags = frags;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_frags__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public String getFormat()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_format;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_frags;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private String m_format;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getFormat__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getFrags__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_format__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_frags__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_format__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">231</span>    private boolean m_frags__IsNotDefault;<a name="line.231"></a>
 <span class="sourceLineNo">232</span>    // 22, 1<a name="line.232"></a>
 <span class="sourceLineNo">233</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
@@ -282,52 +282,52 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected ServerManager serverManager;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected String filter;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setFilter(p_filter);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<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>  protected boolean catalogJanitorEnabled;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected String format;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setFormat(p_format);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<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>  protected Map&lt;String,Integer&gt; frags;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected AssignmentManager assignmentManager;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFrags(p_frags);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected boolean catalogJanitorEnabled;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected AssignmentManager assignmentManager;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected ServerManager serverManager;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<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>  protected String format;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setFormat(p_format);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setFrags(p_frags);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
index c86bdcf..fd6e441 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
@@ -69,13 +69,13 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.70"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.71"></a>
 <span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
@@ -118,125 +118,125 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 28, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setServerManager(ServerManager serverManager)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 28, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_serverManager = serverManager;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_serverManager__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public ServerManager getServerManager()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_serverManager;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private ServerManager m_serverManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getServerManager__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_serverManager__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_serverManager__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 26, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setFilter(String filter)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 26, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_filter = filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_filter__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public String getFilter()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_filter;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private String m_filter;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getFilter__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_filter__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_filter__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 25, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 27, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setFormat(String format)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 25, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 27, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_format = format;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_format__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public boolean getCatalogJanitorEnabled()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public String getFormat()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_catalogJanitorEnabled;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_format;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private boolean m_catalogJanitorEnabled;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private String m_format;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getFormat__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_format__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 21, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_format__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 29, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 21, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_frags = frags;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_frags__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 29, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_assignmentManager = assignmentManager;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_assignmentManager__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public AssignmentManager getAssignmentManager()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_frags;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_assignmentManager;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFrags__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private AssignmentManager m_assignmentManager;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_frags__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_assignmentManager__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_frags__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 24, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 25, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 24, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_deadServers = deadServers;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_deadServers__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 25, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public boolean getCatalogJanitorEnabled()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_deadServers;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_catalogJanitorEnabled;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getDeadServers__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private boolean m_catalogJanitorEnabled;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_deadServers__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_deadServers__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 29, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 28, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setServerManager(ServerManager serverManager)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 29, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_assignmentManager = assignmentManager;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_assignmentManager__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 28, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_serverManager = serverManager;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_serverManager__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public AssignmentManager getAssignmentManager()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public ServerManager getServerManager()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_assignmentManager;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_serverManager;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private AssignmentManager m_assignmentManager;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private ServerManager m_serverManager;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getServerManager__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_assignmentManager__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_serverManager__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 27, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setFormat(String format)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_serverManager__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 21, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 27, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_format = format;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_format__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 21, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_frags = frags;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_frags__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public String getFormat()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_format;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_frags;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private String m_format;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getFormat__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getFrags__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_format__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_frags__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_format__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">231</span>    private boolean m_frags__IsNotDefault;<a name="line.231"></a>
 <span class="sourceLineNo">232</span>    // 22, 1<a name="line.232"></a>
 <span class="sourceLineNo">233</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
@@ -282,52 +282,52 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected ServerManager serverManager;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected String filter;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setFilter(p_filter);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<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>  protected boolean catalogJanitorEnabled;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected String format;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setFormat(p_format);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<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>  protected Map&lt;String,Integer&gt; frags;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected AssignmentManager assignmentManager;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFrags(p_frags);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected boolean catalogJanitorEnabled;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected AssignmentManager assignmentManager;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected ServerManager serverManager;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<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>  protected String format;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setFormat(p_format);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setFrags(p_frags);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index c86bdcf..fd6e441 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -69,13 +69,13 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.70"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.71"></a>
 <span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
@@ -118,125 +118,125 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 28, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setServerManager(ServerManager serverManager)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 28, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_serverManager = serverManager;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_serverManager__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public ServerManager getServerManager()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_serverManager;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private ServerManager m_serverManager;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getServerManager__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_serverManager__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_serverManager__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 26, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setFilter(String filter)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 26, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_filter = filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_filter__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public String getFilter()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_filter;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private String m_filter;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getFilter__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_filter__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_filter__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 25, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 27, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setFormat(String format)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 25, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 27, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_format = format;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_format__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public boolean getCatalogJanitorEnabled()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public String getFormat()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_catalogJanitorEnabled;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_format;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private boolean m_catalogJanitorEnabled;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private String m_format;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getFormat__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_format__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 21, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_format__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 29, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 21, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_frags = frags;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_frags__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 29, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_assignmentManager = assignmentManager;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_assignmentManager__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public AssignmentManager getAssignmentManager()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_frags;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_assignmentManager;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFrags__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private AssignmentManager m_assignmentManager;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_frags__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_assignmentManager__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_frags__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 24, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 25, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 24, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_deadServers = deadServers;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_deadServers__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 25, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public boolean getCatalogJanitorEnabled()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_deadServers;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_catalogJanitorEnabled;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getDeadServers__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private boolean m_catalogJanitorEnabled;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_deadServers__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_deadServers__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 29, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 28, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setServerManager(ServerManager serverManager)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 29, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_assignmentManager = assignmentManager;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_assignmentManager__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 28, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_serverManager = serverManager;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_serverManager__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public AssignmentManager getAssignmentManager()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public ServerManager getServerManager()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_assignmentManager;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_serverManager;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private AssignmentManager m_assignmentManager;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private ServerManager m_serverManager;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getServerManager__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_assignmentManager__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_serverManager__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 27, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setFormat(String format)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_serverManager__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 21, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 27, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_format = format;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_format__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 21, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_frags = frags;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_frags__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public String getFormat()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_format;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_frags;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private String m_format;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getFormat__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getFrags__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_format__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_frags__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_format__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">231</span>    private boolean m_frags__IsNotDefault;<a name="line.231"></a>
 <span class="sourceLineNo">232</span>    // 22, 1<a name="line.232"></a>
 <span class="sourceLineNo">233</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
@@ -282,52 +282,52 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected ServerManager serverManager;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected String filter;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setFilter(p_filter);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<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>  protected boolean catalogJanitorEnabled;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected String format;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setFormat(p_format);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<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>  protected Map&lt;String,Integer&gt; frags;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected AssignmentManager assignmentManager;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFrags(p_frags);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected boolean catalogJanitorEnabled;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected AssignmentManager assignmentManager;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected ServerManager serverManager;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<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>  protected String format;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setFormat(p_format);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setFrags(p_frags);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<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>


[17/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 3628890..807cb82 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 = "2.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "5f98ad2053ddc31e0abc6863478db594e4447cf8";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "9facfa550f1e7386be3a04d84f7e8013f5002965";<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 = "Sat Apr  1 02:42:17 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Sat Apr  1 03:12:12 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "306d65abffe57939b4c4f0760140a19e";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "0baaa8302857e9dd57f3052599c49b90";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[19/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
index 3a9860c..7ec1f61 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
@@ -1018,7 +1018,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <li class="blockList">
 <h4>SCANNER_ALREADY_CLOSED</h4>
 <pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2638">SCANNER_ALREADY_CLOSED</a></pre>
+private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2639">SCANNER_ALREADY_CLOSED</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
@@ -1539,7 +1539,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getServices</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1305">getServices</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1306">getServices</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>list of blocking services and their security info classes that this server supports</dd>
@@ -1552,7 +1552,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getSocketAddress</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1316">getSocketAddress</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1317">getSocketAddress</a>()</pre>
 </li>
 </ul>
 <a name="getPriority-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hadoop.hbase.shaded.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-">
@@ -1561,7 +1561,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getPriority</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1321">getPriority</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1322">getPriority</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
                        org.apache.hadoop.hbase.shaded.com.google.protobuf.Message&nbsp;param,
                        <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html#getPriority-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hadoop.hbase.shaded.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-">PriorityFunction</a></code></span></div>
@@ -1581,7 +1581,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getDeadline</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1326">getDeadline</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1327">getDeadline</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
                         org.apache.hadoop.hbase.shaded.com.google.protobuf.Message&nbsp;param)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html#getDeadline-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hadoop.hbase.shaded.com.google.protobuf.Message-">PriorityFunction</a></code></span></div>
 <div class="block">Returns the deadline of the specified request.
@@ -1600,7 +1600,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkOOME</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1338">checkOOME</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1339">checkOOME</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html#checkOOME-java.lang.Throwable-">HBaseRPCErrorHandler</a></code></span></div>
 <div class="block">Take actions on the event of an OutOfMemoryError.</div>
 <dl>
@@ -1619,7 +1619,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>exitIfOOME</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1342">exitIfOOME</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1343">exitIfOOME</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 </li>
 </ul>
 <a name="closeRegion-org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest-">
@@ -1628,7 +1628,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1370">closeRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1371">closeRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest&nbsp;request)
                                                                                               throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Close a region on the region server.</div>
@@ -1649,7 +1649,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionForSplitOrMerge</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionForSplitOrMergeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1404">closeRegionForSplitOrMerge</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionForSplitOrMergeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1405">closeRegionForSplitOrMerge</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionForSplitOrMergeRequest&nbsp;request)
                                                                                                                             throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1666,7 +1666,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1441">compactRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1442">compactRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Compact a region on the region server.</div>
@@ -1687,7 +1687,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>flushRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1500">flushRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1501">flushRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest&nbsp;request)
                                                                                               throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Flush a region on the region server.</div>
@@ -1708,7 +1708,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1542">getOnlineRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1543">getOnlineRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                              org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest&nbsp;request)
                                                                                                       throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1725,7 +1725,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1561">getRegionInfo</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1562">getRegionInfo</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1742,7 +1742,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionLoad</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1582">getRegionLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1583">getRegionLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionLoadRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1759,7 +1759,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1617">getServerInfo</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1618">getServerInfo</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Get some information of the region server.</div>
@@ -1780,7 +1780,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFile</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetStoreFileResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1631">getStoreFile</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetStoreFileResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1632">getStoreFile</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                        org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetStoreFileRequest&nbsp;request)
                                                                                                 throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1797,7 +1797,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>openRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1682">openRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1683">openRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionRequest&nbsp;request)
                                                                                             throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Open asynchronously a region or a set of regions on the region server.
@@ -1835,7 +1835,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>warmupRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WarmupRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1850">warmupRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WarmupRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1851">warmupRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                        org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WarmupRegionRequest&nbsp;request)
                                                                                                 throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Wamrmup a region on this server.
@@ -1860,7 +1860,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>replay</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1901">replay</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1902">replay</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryRequest&nbsp;request)
                                                                                                throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Replay the given changes when distributedLogReplay WAL edits from a failed RS. The guarantee is
@@ -1883,7 +1883,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getWAL</h4>
-<pre><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/RSRpcServices.html#line.1988">getWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region)</pre>
+<pre><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/RSRpcServices.html#line.1989">getWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region)</pre>
 </li>
 </ul>
 <a name="replicateWALEntry-org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryRequest-">
@@ -1892,7 +1892,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>replicateWALEntry</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2001">replicateWALEntry</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2002">replicateWALEntry</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                  org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryRequest&nbsp;request)
                                                                                                           throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Replicate WAL entries on the region server.</div>
@@ -1913,7 +1913,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWALWriter</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.RollWALWriterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2030">rollWALWriter</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.RollWALWriterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2031">rollWALWriter</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.RollWALWriterRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Roll the WAL writer of the region server.</div>
@@ -1934,7 +1934,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2054">splitRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2055">splitRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest&nbsp;request)
                                                                                               throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Split a region on the region server.</div>
@@ -1955,7 +1955,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServer</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.StopServerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2092">stopServer</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.StopServerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2093">stopServer</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.StopServerRequest&nbsp;request)
                                                                                             throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Stop the region server.</div>
@@ -1976,7 +1976,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFavoredNodes</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2101">updateFavoredNodes</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2102">updateFavoredNodes</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesRequest&nbsp;request)
                                                                                                             throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1993,7 +1993,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>bulkLoadHFile</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2122">bulkLoadHFile</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2123">bulkLoadHFile</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;request)
                                                                                                    throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Atomically bulk load several HFiles into an open region</div>
@@ -2013,7 +2013,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareBulkLoad</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2176">prepareBulkLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2177">prepareBulkLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest&nbsp;request)
                                                                                                        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2030,7 +2030,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupBulkLoad</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2194">cleanupBulkLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2195">cleanupBulkLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest&nbsp;request)
                                                                                                        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2047,7 +2047,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>execService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2211">execService</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2212">execService</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                              org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest&nbsp;request)
                                                                                                       throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2064,7 +2064,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>execServiceOnRegion</h4>
-<pre>private&nbsp;com.google.protobuf.Message&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2231">execServiceOnRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
+<pre>private&nbsp;com.google.protobuf.Message&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2232">execServiceOnRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall&nbsp;serviceCall)
                                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2079,7 +2079,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2246">get</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2247">get</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetRequest&nbsp;request)
                                                                                throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Get data from a table.</div>
@@ -2100,7 +2100,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2315">get</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2316">get</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannersCloseCallBack</a>&nbsp;closeCallBack,
                    <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context)
@@ -2117,7 +2117,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>multi</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2371">multi</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;rpcc,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2372">multi</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;rpcc,
                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest&nbsp;request)
                                                                                    throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Execute multiple actions on a table: get, mutate, and/or execCoprocessor</div>
@@ -2138,7 +2138,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>skipCellsForMutations</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2483">skipCellsForMutations</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;actions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2484">skipCellsForMutations</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;actions,
                                    <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner)</pre>
 </li>
 </ul>
@@ -2148,7 +2148,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>skipCellsForMutation</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2489">skipCellsForMutation</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&nbsp;action,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2490">skipCellsForMutation</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&nbsp;action,
                                   <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner)</pre>
 </li>
 </ul>
@@ -2158,7 +2158,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>mutate</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2515">mutate</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;rpcc,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2516">mutate</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;rpcc,
                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest&nbsp;request)
                                                                                      throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Mutate data in a table.</div>
@@ -2179,7 +2179,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionScanner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2648">getRegionScanner</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2649">getRegionScanner</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request)
                                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2193,7 +2193,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>newRegionScanner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2689">newRegionScanner</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2690">newRegionScanner</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse.Builder&nbsp;builder)
                                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2208,7 +2208,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkScanNextCallSeq</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2724">checkScanNextCallSeq</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2725">checkScanNextCallSeq</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
                                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;rsh)
                            throws <a href="../../../../../org/apache/hadoop/hbase/exceptions/OutOfOrderScannerNextException.html" title="class in org.apache.hadoop.hbase.exceptions">OutOfOrderScannerNextException</a></pre>
 <dl>
@@ -2223,7 +2223,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>addScannerLeaseBack</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2739">addScannerLeaseBack</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a>&nbsp;lease)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2740">addScannerLeaseBack</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a>&nbsp;lease)</pre>
 </li>
 </ul>
 <a name="getTimeLimit-org.apache.hadoop.hbase.ipc.HBaseRpcController-boolean-">
@@ -2232,7 +2232,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeLimit</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2748">getTimeLimit</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2749">getTimeLimit</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
                           boolean&nbsp;allowHeartbeatMessages)</pre>
 </li>
 </ul>
@@ -2242,7 +2242,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkLimitOfRows</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2775">checkLimitOfRows</a>(int&nbsp;numOfCompleteRows,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2776">checkLimitOfRows</a>(int&nbsp;numOfCompleteRows,
                               int&nbsp;limitOfRows,
                               boolean&nbsp;moreRows,
                               <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
@@ -2255,7 +2255,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>scan</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2787">scan</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2788">scan</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
                   org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;rsh,
                   long&nbsp;maxQuotaResultSize,
@@ -2278,7 +2278,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>scan</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2971">scan</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2972">scan</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request)
                                                                                  throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Scan data in a table.</div>
@@ -2299,7 +2299,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>closeScanner</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3194">closeScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3195">closeScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
                           <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;scanner,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;scannerName,
                           <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context)
@@ -2316,7 +2316,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>execRegionServerService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3216">execRegionServerService</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3217">execRegionServerService</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest&nbsp;request)
                                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2333,7 +2333,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateConfigurationResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3222">updateConfiguration</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateConfigurationResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3223">updateConfiguration</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateConfigurationRequest&nbsp;request)
                                                                                                               throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 37386a7..e0a7078 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -668,20 +668,20 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.FlushResult.Result</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/RegionOpeningState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionOpeningState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/ImmutableSegment.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ImmutableSegment.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.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/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/StoreScanner.StoreScannerCompactionRace.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">StoreScanner.StoreScannerCompactionRace</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactor.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactor.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/RegionOpeningState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionOpeningState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactor.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactor.Action</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 18b268a..777d49b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -125,10 +125,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteCompare.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteCompare</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 377757c..8387ff7 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -135,9 +135,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.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/993199fc/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 73b9c9d..e40986a 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -191,9 +191,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 6637fe6..051b200 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="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/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>


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

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


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

Branch: refs/heads/asf-site
Commit: 993199fcd9d3c890975cb63618e7a4b79b8b0a80
Parents: cb7512f
Author: jenkins <bu...@apache.org>
Authored: Sat Apr 1 03:33:15 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Sat Apr 1 03:33:15 2017 +0000

----------------------------------------------------------------------
 apache_hbase_reference_guide.pdf                |     4 +-
 apache_hbase_reference_guide.pdfmarks           |     4 +-
 checkstyle-aggregate.html                       | 19664 +++++++++--------
 checkstyle.rss                                  |     4 +-
 devapidocs/allclasses-frame.html                |     1 +
 devapidocs/allclasses-noframe.html              |     1 +
 devapidocs/constant-values.html                 |    74 +-
 devapidocs/index-all.html                       |    92 +
 .../hadoop/hbase/backup/package-tree.html       |     4 +-
 .../hbase/classification/package-tree.html      |     4 +-
 .../hadoop/hbase/client/package-tree.html       |    22 +-
 .../hbase/conf/ConfigurationObserver.html       |     2 +-
 .../conf/class-use/ConfigurationObserver.html   |    29 +-
 .../apache/hadoop/hbase/conf/package-use.html   |    27 +-
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |     6 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     4 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../org/apache/hadoop/hbase/master/HMaster.html |   272 +-
 .../hbase/master/cleaner/CleanerChore.html      |    44 +-
 .../hbase/master/cleaner/HFileCleaner.html      |   528 +-
 .../hbase/master/cleaner/HFileLinkCleaner.html  |     4 +-
 .../hadoop/hbase/master/cleaner/LogCleaner.html |     4 +-
 .../hbase/master/cleaner/package-frame.html     |     1 +
 .../hbase/master/cleaner/package-summary.html   |    16 +-
 .../hbase/master/cleaner/package-tree.html      |     3 +-
 .../hbase/master/cleaner/package-use.html       |     5 +-
 .../hadoop/hbase/master/package-tree.html       |     6 +-
 .../hbase/master/procedure/package-tree.html    |     4 +-
 .../org/apache/hadoop/hbase/package-tree.html   |     8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/quotas/package-tree.html       |     6 +-
 .../hbase/regionserver/RSRpcServices.html       |    94 +-
 .../hadoop/hbase/regionserver/package-tree.html |    18 +-
 .../regionserver/querymatcher/package-tree.html |     4 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     4 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   210 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |    84 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    42 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |   120 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    48 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    24 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    10 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 devapidocs/overview-tree.html                   |     3 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../master/HMaster.InitializationMonitor.html   |  4833 ++--
 .../hbase/master/HMaster.PeriodicDoMetrics.html |  4833 ++--
 .../hbase/master/HMaster.RedirectServlet.html   |  4833 ++--
 .../org/apache/hadoop/hbase/master/HMaster.html |  4833 ++--
 .../hbase/master/cleaner/CleanerChore.html      |   102 +-
 .../hbase/master/cleaner/HFileCleaner.html      |   415 +-
 ...SRpcServices.RegionScannerCloseCallBack.html |  3873 ++--
 .../RSRpcServices.RegionScannerHolder.html      |  3873 ++--
 ...pcServices.RegionScannerShippedCallBack.html |  3873 ++--
 ...RpcServices.RegionScannersCloseCallBack.html |  3873 ++--
 .../RSRpcServices.ScannerListener.html          |  3873 ++--
 .../hbase/regionserver/RSRpcServices.html       |  3873 ++--
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   210 +-
 .../tmpl/master/MasterStatusTmpl.Intf.html      |   210 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   210 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    60 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |   120 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |   120 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |   120 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    36 +-
 hbase-spark/dependencies.html                   |     2 +-
 testdevapidocs/index-all.html                   |     8 +
 .../cleaner/TestCleanerChore.AllValidPaths.html |     4 +-
 .../cleaner/TestHFileCleaner.DummyServer.html   |    28 +-
 .../hbase/master/cleaner/TestHFileCleaner.html  |   112 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    10 +-
 .../hadoop/hbase/regionserver/package-tree.html |     4 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     4 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     4 +-
 .../cleaner/TestHFileCleaner.DummyServer.html   |   624 +-
 .../hbase/master/cleaner/TestHFileCleaner.html  |   624 +-
 80 files changed, 34293 insertions(+), 32834 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 4e3d5c3..62f8fb0 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.6, based on Prawn 1.2.1)
 /Producer (Apache HBase Team)
-/CreationDate (D:20170401025041+00'00')
-/ModDate (D:20170401025041+00'00')
+/CreationDate (D:20170401032033+00'00')
+/ModDate (D:20170401032033+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/apache_hbase_reference_guide.pdfmarks
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdfmarks b/apache_hbase_reference_guide.pdfmarks
index 69f6dc8..1f33eef 100644
--- a/apache_hbase_reference_guide.pdfmarks
+++ b/apache_hbase_reference_guide.pdfmarks
@@ -2,8 +2,8 @@
   /Author (Apache HBase Team)
   /Subject ()
   /Keywords ()
-  /ModDate (D:20170401025208)
-  /CreationDate (D:20170401025208)
+  /ModDate (D:20170401032159)
+  /CreationDate (D:20170401032159)
   /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
   /Producer ()
   /DOCINFO pdfmark


[15/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.PeriodicDoMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.PeriodicDoMetrics.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.PeriodicDoMetrics.html
index 99a5bb1..98b388b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.PeriodicDoMetrics.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.PeriodicDoMetrics.html
@@ -893,2422 +893,2423 @@
 <span class="sourceLineNo">885</span>    status.markComplete("Initialization successful");<a name="line.885"></a>
 <span class="sourceLineNo">886</span>    LOG.info("Master has completed initialization");<a name="line.886"></a>
 <span class="sourceLineNo">887</span>    configurationManager.registerObserver(this.balancer);<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>    // Set master as 'initialized'.<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    setInitialized(true);<a name="line.890"></a>
-<span class="sourceLineNo">891</span><a name="line.891"></a>
-<span class="sourceLineNo">892</span>    status.setStatus("Assign meta replicas");<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    metaBootstrap.assignMetaReplicas();<a name="line.893"></a>
-<span class="sourceLineNo">894</span><a name="line.894"></a>
-<span class="sourceLineNo">895</span>    status.setStatus("Starting quota manager");<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    initQuotaManager();<a name="line.896"></a>
-<span class="sourceLineNo">897</span><a name="line.897"></a>
-<span class="sourceLineNo">898</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    // master initialization. See HBASE-5916.<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.901"></a>
-<span class="sourceLineNo">902</span><a name="line.902"></a>
-<span class="sourceLineNo">903</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    status.setStatus("Checking ZNode ACLs");<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.905"></a>
-<span class="sourceLineNo">906</span><a name="line.906"></a>
-<span class="sourceLineNo">907</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    initMobCleaner();<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (this.cpHost != null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      // don't let cp initialization errors kill the master<a name="line.912"></a>
-<span class="sourceLineNo">913</span>      try {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>        this.cpHost.postStartMaster();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>      } catch (IOException ioe) {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>    zombieDetector.interrupt();<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  }<a name="line.921"></a>
-<span class="sourceLineNo">922</span><a name="line.922"></a>
-<span class="sourceLineNo">923</span>  private void initMobCleaner() {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    this.expiredMobFileCleanerChore = new ExpiredMobFileCleanerChore(this);<a name="line.924"></a>
-<span class="sourceLineNo">925</span>    getChoreService().scheduleChore(expiredMobFileCleanerChore);<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>    int mobCompactionPeriod = conf.getInt(MobConstants.MOB_COMPACTION_CHORE_PERIOD,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        MobConstants.DEFAULT_MOB_COMPACTION_CHORE_PERIOD);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    if (mobCompactionPeriod &gt; 0) {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      this.mobCompactChore = new MobCompactionChore(this, mobCompactionPeriod);<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      getChoreService().scheduleChore(mobCompactChore);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    } else {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      LOG<a name="line.933"></a>
-<span class="sourceLineNo">934</span>        .info("The period is " + mobCompactionPeriod + " seconds, MobCompactionChore is disabled");<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.mobCompactThread = new MasterMobCompactionThread(this);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>  }<a name="line.937"></a>
-<span class="sourceLineNo">938</span><a name="line.938"></a>
-<span class="sourceLineNo">939</span>  /**<a name="line.939"></a>
-<span class="sourceLineNo">940</span>   * Create a {@link MasterMetaBootstrap} instance.<a name="line.940"></a>
-<span class="sourceLineNo">941</span>   */<a name="line.941"></a>
-<span class="sourceLineNo">942</span>  MasterMetaBootstrap createMetaBootstrap(final HMaster master, final MonitoredTask status) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    // w/ a mocked up MasterMetaBootstrap.<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    return new MasterMetaBootstrap(master, status);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>  }<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>   * Create a {@link ServerManager} instance.<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   */<a name="line.950"></a>
-<span class="sourceLineNo">951</span>  ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    // w/ a mocked up ServerManager.<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    setupClusterConnection();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    return new ServerManager(master);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>  }<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      throws IOException, InterruptedException {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    this.serverManager.waitForRegionServers(status);<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    // Check zk for region servers that are up but didn't register<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (ServerName sn: this.regionServerTracker.getOnlineServers()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // The isServerOnline check is opportunistic, correctness is handled inside<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!this.serverManager.isServerOnline(sn)<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          &amp;&amp; serverManager.checkAndRecordNewServer(sn, ServerLoad.EMPTY_SERVERLOAD)) {<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        LOG.info("Registered server found up in zk but who has not yet reported in: " + sn);<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<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><a name="line.970"></a>
-<span class="sourceLineNo">971</span>  void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    this.clusterSchemaService = new ClusterSchemaServiceImpl(this);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    this.clusterSchemaService.startAndWait();<a name="line.973"></a>
-<span class="sourceLineNo">974</span>    if (!this.clusterSchemaService.isRunning()) throw new HBaseIOException("Failed start");<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  }<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>  void initQuotaManager() throws IOException {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    MasterQuotaManager quotaManager = new MasterQuotaManager(this);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.assignmentManager.setRegionStateListener((RegionStateListener)quotaManager);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    quotaManager.start();<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    this.quotaManager = quotaManager;<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>  boolean isCatalogJanitorEnabled() {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    return catalogJanitorChore != null ?<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      catalogJanitorChore.getEnabled() : false;<a name="line.986"></a>
-<span class="sourceLineNo">987</span>  }<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>  boolean isCleanerChoreEnabled() {<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    boolean hfileCleanerFlag = true, logCleanerFlag = true;<a name="line.990"></a>
-<span class="sourceLineNo">991</span><a name="line.991"></a>
-<span class="sourceLineNo">992</span>    if (hfileCleaner != null) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>      hfileCleanerFlag = hfileCleaner.getEnabled();<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>    if (logCleaner != null) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      logCleanerFlag = logCleaner.getEnabled();<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    }<a name="line.998"></a>
-<span class="sourceLineNo">999</span><a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    return (hfileCleanerFlag &amp;&amp; logCleanerFlag);<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  }<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span><a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>  @Override<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  public TableDescriptors getTableDescriptors() {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    return this.tableDescriptors;<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>  }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span><a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  @Override<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  public ServerManager getServerManager() {<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    return this.serverManager;<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>  }<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span><a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  @Override<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    return this.fileSystemManager;<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  }<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span><a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>  @Override<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>  public MasterWalManager getMasterWalManager() {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>    return this.walManager;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>  }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span><a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  @Override<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  public TableStateManager getTableStateManager() {<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    return tableStateManager;<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  }<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span><a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>  /*<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   * Start up all services. If any of these threads gets an unhandled exception<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * then they just die with a logged message.  This should be fine because<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   * in general, we do not expect the master to get such unhandled exceptions<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>   *  as OOMEs; it should be lightly loaded. See what HRegionServer does if<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   *  need to install an unexpected exception handler.<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   */<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>  private void startServiceThreads() throws IOException{<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   // Start the executor service pools<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   this.service.startExecutorService(ExecutorType.MASTER_OPEN_REGION,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>      conf.getInt("hbase.master.executor.openregion.threads", 5));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>   this.service.startExecutorService(ExecutorType.MASTER_CLOSE_REGION,<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      conf.getInt("hbase.master.executor.closeregion.threads", 5));<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   this.service.startExecutorService(ExecutorType.MASTER_SERVER_OPERATIONS,<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      conf.getInt("hbase.master.executor.serverops.threads", 5));<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   this.service.startExecutorService(ExecutorType.MASTER_META_SERVER_OPERATIONS,<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      conf.getInt("hbase.master.executor.meta.serverops.threads", 5));<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>   this.service.startExecutorService(ExecutorType.M_LOG_REPLAY_OPS,<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      conf.getInt("hbase.master.executor.logreplayops.threads", 10));<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span><a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>   // We depend on there being only one instance of this executor running<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>   // at a time.  To do concurrency, would need fencing of enable/disable of<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>   // tables.<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>   // Any time changing this maxThreads to &gt; 1, pls see the comment at<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>   // AccessController#postCompletedCreateTableAction<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>   this.service.startExecutorService(ExecutorType.MASTER_TABLE_OPERATIONS, 1);<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   startProcedureExecutor();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span><a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>   // Start log cleaner thread<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>   int cleanerInterval = conf.getInt("hbase.master.cleaner.interval", 60 * 1000);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>   this.logCleaner =<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      new LogCleaner(cleanerInterval,<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>         this, conf, getMasterWalManager().getFileSystem(),<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>         getMasterWalManager().getOldLogDir());<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    getChoreService().scheduleChore(logCleaner);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>   //start the hfile archive cleaner thread<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    Path archiveDir = HFileArchiveUtil.getArchivePath(conf);<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    Map&lt;String, Object&gt; params = new HashMap&lt;&gt;();<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    params.put(MASTER, this);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    this.hfileCleaner = new HFileCleaner(cleanerInterval, this, conf, getMasterFileSystem()<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        .getFileSystem(), archiveDir, params);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>    getChoreService().scheduleChore(hfileCleaner);<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>    serviceStarted = true;<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    if (LOG.isTraceEnabled()) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      LOG.trace("Started service threads");<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    // Start replication zk node cleaner<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    if (conf.getClass("hbase.region.replica.replication.replicationQueues.class",<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      ReplicationFactory.defaultReplicationQueueClass) == ReplicationQueuesZKImpl.class) {<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>      try {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>        replicationZKNodeCleanerChore = new ReplicationZKNodeCleanerChore(this, cleanerInterval,<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>            new ReplicationZKNodeCleaner(this.conf, this.getZooKeeper(), this));<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>        getChoreService().scheduleChore(replicationZKNodeCleanerChore);<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>      } catch (Exception e) {<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        LOG.error("start replicationZKNodeCleanerChore failed", e);<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>    replicationMetaCleaner = new ReplicationMetaCleaner(this, this, cleanerInterval);<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    getChoreService().scheduleChore(replicationMetaCleaner);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>  }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  @Override<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  protected void sendShutdownInterrupt() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    super.sendShutdownInterrupt();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    stopProcedureExecutor();<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span><a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>  @Override<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  protected void stopServiceThreads() {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    if (masterJettyServer != null) {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      LOG.info("Stopping master jetty server");<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>      try {<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        masterJettyServer.stop();<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      } catch (Exception e) {<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        LOG.error("Failed to stop master jetty server", e);<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>    super.stopServiceThreads();<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    stopChores();<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span><a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    // Wait for all the remaining region servers to report in IFF we were<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    // running a cluster shutdown AND we were NOT aborting.<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    if (!isAborted() &amp;&amp; this.serverManager != null &amp;&amp;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>        this.serverManager.isClusterShutdown()) {<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      this.serverManager.letRegionServersShutdown();<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>    }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    if (LOG.isDebugEnabled()) {<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      LOG.debug("Stopping service threads");<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    }<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Clean up and close up shop<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    if (this.logCleaner != null) this.logCleaner.cancel(true);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    if (this.hfileCleaner != null) this.hfileCleaner.cancel(true);<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.replicationZKNodeCleanerChore != null) this.replicationZKNodeCleanerChore.cancel(true);<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>    if (this.replicationMetaCleaner != null) this.replicationMetaCleaner.cancel(true);<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>    if (this.quotaManager != null) this.quotaManager.stop();<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    if (this.activeMasterManager != null) this.activeMasterManager.stop();<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>    if (this.serverManager != null) this.serverManager.stop();<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    if (this.assignmentManager != null) this.assignmentManager.stop();<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>    if (this.walManager != null) this.walManager.stop();<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>    if (this.fileSystemManager != null) this.fileSystemManager.stop();<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>    if (this.mpmHost != null) this.mpmHost.stop("server shutting down.");<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>  private void startProcedureExecutor() throws IOException {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    final MasterProcedureEnv procEnv = new MasterProcedureEnv(this);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    final Path walDir = new Path(FSUtils.getWALRootDir(this.conf),<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        MasterProcedureConstants.MASTER_PROCEDURE_LOGDIR);<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span><a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    procedureStore = new WALProcedureStore(conf, walDir.getFileSystem(conf), walDir,<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        new MasterProcedureEnv.WALStoreLeaseRecovery(this));<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    procedureStore.registerListener(new MasterProcedureEnv.MasterProcedureStoreListener(this));<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>    procedureExecutor = new ProcedureExecutor(conf, procEnv, procedureStore,<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>        procEnv.getProcedureScheduler());<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>    configurationManager.registerObserver(procEnv);<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span><a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS,<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        Math.max(Runtime.getRuntime().availableProcessors(),<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>          MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    final boolean abortOnCorruption = conf.getBoolean(<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>        MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    procedureStore.start(numThreads);<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>    procedureExecutor.start(numThreads, abortOnCorruption);<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>  }<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span><a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  private void stopProcedureExecutor() {<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>    if (procedureExecutor != null) {<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      configurationManager.deregisterObserver(procedureExecutor.getEnvironment());<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      procedureExecutor.stop();<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    if (procedureStore != null) {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      procedureStore.stop(isAborted());<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>  private void stopChores() {<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (this.expiredMobFileCleanerChore != null) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      this.expiredMobFileCleanerChore.cancel(true);<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    if (this.mobCompactChore != null) {<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>      this.mobCompactChore.cancel(true);<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>    }<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    if (this.balancerChore != null) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>      this.balancerChore.cancel(true);<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    if (this.normalizerChore != null) {<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>      this.normalizerChore.cancel(true);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    }<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    if (this.clusterStatusChore != null) {<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>      this.clusterStatusChore.cancel(true);<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>    }<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    if (this.catalogJanitorChore != null) {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      this.catalogJanitorChore.cancel(true);<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>    }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    if (this.clusterStatusPublisherChore != null){<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>      clusterStatusPublisherChore.cancel(true);<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    }<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    if (this.mobCompactThread != null) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>      this.mobCompactThread.close();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>    if (this.periodicDoMetricsChore != null) {<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      periodicDoMetricsChore.cancel();<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>  }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>  /**<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   * @return Get remote side's InetAddress<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>   */<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>  InetAddress getRemoteInetAddress(final int port,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>      final long serverStartCode) throws UnknownHostException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>    // Do it out here in its own little method so can fake an address when<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>    // mocking up in tests.<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>    InetAddress ia = RpcServer.getRemoteIp();<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span><a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    // The call could be from the local regionserver,<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>    // in which case, there is no remote address.<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    if (ia == null &amp;&amp; serverStartCode == startcode) {<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      InetSocketAddress isa = rpcServices.getSocketAddress();<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>      if (isa != null &amp;&amp; isa.getPort() == port) {<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        ia = isa.getAddress();<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      }<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    return ia;<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>  /**<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>   * @return Maximum time we should run balancer for<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>   */<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  private int getMaxBalancingTime() {<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    int maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_MAX_BALANCING, -1);<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>    if (maxBalancingTime == -1) {<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // if max balancing time isn't set, defaulting it to period time<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_PERIOD,<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>        HConstants.DEFAULT_HBASE_BALANCER_PERIOD);<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    return maxBalancingTime;<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>  /**<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>   * @return Maximum number of regions in transition<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>   */<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>  private int getMaxRegionsInTransition() {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    int numRegions = this.assignmentManager.getRegionStates().getRegionAssignments().size();<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>    return Math.max((int) Math.floor(numRegions * this.maxRitPercent), 1);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>  }<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>   * It first sleep to the next balance plan start time. Meanwhile, throttling by the max<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>   * number regions in transition to protect availability.<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>   * @param nextBalanceStartTime The next balance plan start time<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>   * @param maxRegionsInTransition max number of regions in transition<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>   * @param cutoffTime when to exit balancer<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>   */<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>  private void balanceThrottling(long nextBalanceStartTime, int maxRegionsInTransition,<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>      long cutoffTime) {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    boolean interrupted = false;<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>    // Sleep to next balance plan start time<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>    // But if there are zero regions in transition, it can skip sleep to speed up.<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    while (!interrupted &amp;&amp; System.currentTimeMillis() &lt; nextBalanceStartTime<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount() != 0) {<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>      try {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>        Thread.sleep(100);<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      } catch (InterruptedException ie) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>        interrupted = true;<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      }<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>    // Throttling by max number regions in transition<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    while (!interrupted<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        &amp;&amp; maxRegionsInTransition &gt; 0<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount()<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>        &gt;= maxRegionsInTransition &amp;&amp; System.currentTimeMillis() &lt;= cutoffTime) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      try {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        // sleep if the number of regions in transition exceeds the limit<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>        Thread.sleep(100);<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>      } catch (InterruptedException ie) {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>        interrupted = true;<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><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    if (interrupted) Thread.currentThread().interrupt();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>  }<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span><a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>  public boolean balance() throws IOException {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    return balance(false);<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  }<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  public boolean balance(boolean force) throws IOException {<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    // if master not initialized, don't run balancer.<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    if (!isInitialized()) {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>      LOG.debug("Master has not been initialized, don't run balancer.");<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>      LOG.info("Master is in maintenanceMode mode, don't run balancer.");<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      return false;<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>    int maxRegionsInTransition = getMaxRegionsInTransition();<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    synchronized (this.balancer) {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>      // If balance not true, don't run balancer.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>      if (!this.loadBalancerTracker.isBalancerOn()) return false;<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>      // Only allow one balance run at at time.<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      if (this.assignmentManager.getRegionStates().isRegionsInTransition()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>        Set&lt;RegionState&gt; regionsInTransition =<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>          this.assignmentManager.getRegionStates().getRegionsInTransition();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>        // if hbase:meta region is in transition, result of assignment cannot be recorded<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        // ignore the force flag in that case<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>        boolean metaInTransition = assignmentManager.getRegionStates().isMetaRegionInTransition();<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>        String prefix = force &amp;&amp; !metaInTransition ? "R" : "Not r";<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>        LOG.debug(prefix + "unning balancer because " + regionsInTransition.size() +<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>          " region(s) in transition: " + org.apache.commons.lang.StringUtils.<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>            abbreviate(regionsInTransition.toString(), 256));<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>        if (!force || metaInTransition) return false;<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      }<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      if (this.serverManager.areDeadServersInProgress()) {<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>        LOG.debug("Not running balancer because processing dead regionserver(s): " +<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>          this.serverManager.getDeadServers());<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>        return false;<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>      }<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span><a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      if (this.cpHost != null) {<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>        try {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>          if (this.cpHost.preBalance()) {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>            LOG.debug("Coprocessor bypassing balancer request");<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>            return false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>          }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>        } catch (IOException ioe) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          LOG.error("Error invoking master coprocessor preBalance()", ioe);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>          return false;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        }<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      }<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span><a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>      Map&lt;TableName, Map&lt;ServerName, List&lt;HRegionInfo&gt;&gt;&gt; assignmentsByTable =<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>        this.assignmentManager.getRegionStates().getAssignmentsByTable();<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span><a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>      //Give the balancer the current cluster state.<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>      this.balancer.setClusterStatus(getClusterStatus());<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>      this.balancer.setClusterLoad(<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>              this.assignmentManager.getRegionStates().getAssignmentsByTable(true));<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span><a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>      for (Entry&lt;TableName, Map&lt;ServerName, List&lt;HRegionInfo&gt;&gt;&gt; e : assignmentsByTable.entrySet()) {<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        List&lt;RegionPlan&gt; partialPlans = this.balancer.balanceCluster(e.getKey(), e.getValue());<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        if (partialPlans != null) plans.addAll(partialPlans);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      long balanceStartTime = System.currentTimeMillis();<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      long cutoffTime = balanceStartTime + this.maxBlancingTime;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>      int rpCount = 0;  // number of RegionPlans balanced so far<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (plans != null &amp;&amp; !plans.isEmpty()) {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>        int balanceInterval = this.maxBlancingTime / plans.size();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>        LOG.info("Balancer plans size is " + plans.size() + ", the balance interval is "<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>            + balanceInterval + " ms, and the max number regions in transition is "<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>            + maxRegionsInTransition);<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>        for (RegionPlan plan: plans) {<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>          LOG.info("balance " + plan);<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          //TODO: bulk assign<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>          this.assignmentManager.balance(plan);<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>          rpCount++;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span><a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>            cutoffTime);<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span><a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>            // a security net for now)<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>                + this.maxBlancingTime);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>            break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>          }<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><a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      if (this.cpHost != null) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>        try {<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>        } catch (IOException ioe) {<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>          // balancing already succeeded so don't change the result<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>        }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      }<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>    }<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>    // Return true indicating a success.<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    return true;<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>  }<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span><a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>  @Override<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>  @VisibleForTesting<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>    return this.normalizer;<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>  }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span><a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>  /**<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>   *<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>   *    is globally disabled)<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>   */<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  public boolean normalizeRegions() throws IOException {<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (!isInitialized()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>      return false;<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    }<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span><a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>    if (isInMaintenanceMode()) {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      return false;<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    }<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      return false;<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>    synchronized (this.normalizer) {<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      // Don't run the normalizer concurrently<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span><a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>      Collections.shuffle(allEnabledTables);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span><a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      for (TableName table : allEnabledTables) {<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>        if (isInMaintenanceMode()) {<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>          return false;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>        }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>        HTableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>          LOG.debug("Skipping normalization for table: " + table + ", as it's either system"<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>              + " table or doesn't have auto normalization turned on");<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>          continue;<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>        }<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>        if (plans != null) {<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>          for (NormalizationPlan plan : plans) {<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>              splitPlanCount++;<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>              mergePlanCount++;<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>            }<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>          }<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>        }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      }<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    // Return true indicating a success.<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>    return true;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>  }<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span><a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>  /**<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   */<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>  String getClientIdAuditPrefix() {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>    return "Client=" + RpcServer.getRequestUserName() + "/" + RpcServer.getRemoteAddress();<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>  }<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span><a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>  /**<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * Switch for the background CatalogJanitor thread.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * if disabled.<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   */<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  }<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span><a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  @Override<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>  public long mergeRegions(<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>      final HRegionInfo[] regionsToMerge,<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      final boolean forcible,<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      final long nonceGroup,<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      final long nonce) throws IOException {<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    checkInitialized();<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span><a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>    assert(regionsToMerge.length == 2);<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span><a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>    }<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span><a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      throw new IOException (<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    if (regionsToMerge[0].compareTo(regionsToMerge[1]) == 0) {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      throw new MergeRegionException(<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span><a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      @Override<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>      protected void run() throws IOException {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span><a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span><a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>          regionsToMerge, forcible));<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span><a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      }<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span><a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      @Override<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      protected String getDescription() {<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        return "DisableTableProcedure";<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>      }<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>    });<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>  }<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span><a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>  @Override<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>  public long splitRegion(<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      final HRegionInfo regionInfo,<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      final byte[] splitRow,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      final long nonceGroup,<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      final long nonce) throws IOException {<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>    checkInitialized();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      @Override<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      protected void run() throws IOException {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span><a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>        LOG.info(getClientIdAuditPrefix() + " Split region " + regionInfo);<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>        // Execute the operation asynchronously<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>        submitProcedure(new SplitTableRegionProcedure(procedureExecutor.getEnvironment(),<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>            regionInfo, splitRow));<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      }<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span><a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      @Override<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      protected String getDescription() {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>        return "DisableTableProcedure";<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>      }<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>    });<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>  }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span><a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>  @VisibleForTesting // Public so can be accessed by tests.<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  public void move(final byte[] encodedRegionName,<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      final byte[] destServerName) throws HBaseIOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span><a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    HRegionInfo hri;<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>    if (regionState != null) {<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      hri = regionState.getRegion();<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } else {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span><a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    ServerName dest;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>        "choosing a server at random");<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>        regionState.getServerName());<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      if (dest == null) {<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>        return;<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      }<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    } else {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      if (dest == null) {<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        return;<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      }<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>        // regions on master. Regions on master could be put on other region<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>        // server intentionally by test however.<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>          + " because it should not be on master");<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>        return;<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>      }<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    }<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span><a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      return;<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    // Now we can do the move<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span><a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      checkInitialized();<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      if (this.cpHost != null) {<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        if (this.cpHost.preMove(hri, rp.getSource(), rp.getDestination())) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>          return;<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>        }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      }<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // warmup the region on the destination before initiating the move. this call<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>      // closed<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>      this.assignmentManager.balance(rp);<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>      if (this.cpHost != null) {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>      }<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    } catch (IOException ioe) {<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>      if (ioe instanceof HBaseIOException) {<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>        throw (HBaseIOException)ioe;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>      }<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      throw new HBaseIOException(ioe);<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    }<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>  }<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span><a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>  @Override<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>  public long createTable(<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      final HTableDescriptor hTableDescriptor,<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      final byte [][] splitKeys,<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      final long nonceGroup,<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      final long nonce) throws IOException {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>    checkInitialized();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span><a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>    String namespace = hTableDescriptor.getTableName().getNamespaceAsString();<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span><a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    HRegionInfo[] newRegions = ModifyRegionUtils.createHRegionInfos(hTableDescriptor, splitKeys);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>    sanityCheckTableDescriptor(hTableDescriptor);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span><a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      @Override<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      protected void run() throws IOException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>        getMaster().getMasterCoprocessorHost().preCreateTable(hTableDescriptor, newRegions);<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span><a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor);<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span><a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createLatch();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        submitProcedure(new CreateTableProcedure(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>            procedureExecutor.getEnvironment(), hTableDescriptor, newRegions, latch));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>        latch.await();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span><a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        getMaster().getMasterCoprocessorHost().postCreateTable(hTableDescriptor, newRegions);<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      }<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span><a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      @Override<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      protected String getDescription() {<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>        return "CreateTableProcedure";<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      }<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>    });<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>  }<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span><a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>  @Override<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>  public long createSystemTable(final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>    if (isStopped()) {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      throw new MasterNotRunningException();<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    }<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    TableName tableName = hTableDescriptor.getTableName();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>    if (!(tableName.isSystemTable())) {<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>      throw new IllegalArgumentException(<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        "Only system table creation can use this createSystemTable API");<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>    }<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span><a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>    HRegionInfo[] newRegions = ModifyRegionUtils.createHRegionInfos(hTableDescriptor, null);<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span><a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span><a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>    // to use nonce to detect duplicated RPC call.<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), hTableDescriptor, newRegions));<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span><a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>    return procId;<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>  }<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span><a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>  /**<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>   * @throws IOException<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>   */<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>  private void sanityCheckTableDescriptor(final HTableDescriptor htd) throws IOException {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>    boolean logWarn = false;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      logWarn = true;<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    }<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    String tableVal = htd.getConfigurationValue(CONF_KEY);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      logWarn = true;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    }<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span><a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    // check max file size<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    if (maxFileSize &lt; 0) {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>    }<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          + "number of regions.";<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>    }<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span><a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>    // check flush size<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    if (flushSize &lt; 0) {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          + " very frequent flushing.";<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>    }<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span><a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>    try {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>      checkClassLoading(conf, htd);<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>    } catch (Exception ex) {<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span><a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    // check compression can be loaded<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    try {<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      checkCompression(htd);<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    } catch (IOException e) {<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>    }<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span><a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>    // check encryption can be loaded<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>    try {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>      checkEncryption(conf, htd);<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    } catch (IOException e) {<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    // Verify compaction policy<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>    try{<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      checkCompactionPolicy(conf, htd);<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    } catch(IOException e){<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    }<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    // check that we have at least 1 CF<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      String message = "Table should have at least one column family.";<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>    }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>    for (HColumnDescriptor hcd : htd.getColumnFamilies()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.1762"></a>
-<span class="so

<TRUNCATED>

[18/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index 1b812dc..fa0281b 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -393,130 +393,130 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.112">m_master</a></pre>
 </li>
 </ul>
-<a name="m_serverManager">
+<a name="m_filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.124">m_serverManager</a></pre>
+<h4>m_filter</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.124">m_filter</a></pre>
 </li>
 </ul>
-<a name="m_serverManager__IsNotDefault">
+<a name="m_filter__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">m_serverManager__IsNotDefault</a></pre>
+<h4>m_filter__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_filter">
+<a name="m_deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.141">m_filter</a></pre>
+<h4>m_deadServers</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.141">m_deadServers</a></pre>
 </li>
 </ul>
-<a name="m_filter__IsNotDefault">
+<a name="m_deadServers__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">m_filter__IsNotDefault</a></pre>
+<h4>m_deadServers__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">m_deadServers__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_catalogJanitorEnabled">
+<a name="m_format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_catalogJanitorEnabled</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.158">m_catalogJanitorEnabled</a></pre>
+<h4>m_format</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.158">m_format</a></pre>
 </li>
 </ul>
-<a name="m_catalogJanitorEnabled__IsNotDefault">
+<a name="m_format__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_catalogJanitorEnabled__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">m_catalogJanitorEnabled__IsNotDefault</a></pre>
+<h4>m_format__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_frags">
+<a name="m_assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_frags</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.175">m_frags</a></pre>
+<h4>m_assignmentManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.175">m_assignmentManager</a></pre>
 </li>
 </ul>
-<a name="m_frags__IsNotDefault">
+<a name="m_assignmentManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_frags__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">m_frags__IsNotDefault</a></pre>
+<h4>m_assignmentManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">m_assignmentManager__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_deadServers">
+<a name="m_catalogJanitorEnabled">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_deadServers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.192">m_deadServers</a></pre>
+<h4>m_catalogJanitorEnabled</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.192">m_catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="m_deadServers__IsNotDefault">
+<a name="m_catalogJanitorEnabled__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_deadServers__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">m_deadServers__IsNotDefault</a></pre>
+<h4>m_catalogJanitorEnabled__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">m_catalogJanitorEnabled__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager">
+<a name="m_serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.209">m_assignmentManager</a></pre>
+<h4>m_serverManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.209">m_serverManager</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager__IsNotDefault">
+<a name="m_serverManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">m_assignmentManager__IsNotDefault</a></pre>
+<h4>m_serverManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">m_serverManager__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_format">
+<a name="m_frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.226">m_format</a></pre>
+<h4>m_frags</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.226">m_frags</a></pre>
 </li>
 </ul>
-<a name="m_format__IsNotDefault">
+<a name="m_frags__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">m_format__IsNotDefault</a></pre>
+<h4>m_frags__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">m_frags__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_metaLocation">
@@ -598,193 +598,193 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.108">getMaster</a>()</pre>
 </li>
 </ul>
-<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.114">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
+<h4>setFilter</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.114">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
 </li>
 </ul>
-<a name="getServerManager--">
+<a name="getFilter--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.120">getServerManager</a>()</pre>
+<h4>getFilter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.120">getFilter</a>()</pre>
 </li>
 </ul>
-<a name="getServerManager__IsNotDefault--">
+<a name="getFilter__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.125">getServerManager__IsNotDefault</a>()</pre>
+<h4>getFilter__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.125">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setDeadServers-java.util.Set-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.131">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
+<h4>setDeadServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.131">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
 </li>
 </ul>
-<a name="getFilter--">
+<a name="getDeadServers--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.137">getFilter</a>()</pre>
+<h4>getDeadServers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.137">getDeadServers</a>()</pre>
 </li>
 </ul>
-<a name="getFilter__IsNotDefault--">
+<a name="getDeadServers__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.142">getFilter__IsNotDefault</a>()</pre>
+<h4>getDeadServers__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.142">getDeadServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setCatalogJanitorEnabled-boolean-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setCatalogJanitorEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.148">setCatalogJanitorEnabled</a>(boolean&nbsp;catalogJanitorEnabled)</pre>
+<h4>setFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.148">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 </li>
 </ul>
-<a name="getCatalogJanitorEnabled--">
+<a name="getFormat--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getCatalogJanitorEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.154">getCatalogJanitorEnabled</a>()</pre>
+<h4>getFormat</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.154">getFormat</a>()</pre>
 </li>
 </ul>
-<a name="getCatalogJanitorEnabled__IsNotDefault--">
+<a name="getFormat__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getCatalogJanitorEnabled__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.159">getCatalogJanitorEnabled__IsNotDefault</a>()</pre>
+<h4>getFormat__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.159">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFrags-java.util.Map-">
+<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFrags</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.165">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;frags)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.165">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;assignmentManager)</pre>
 </li>
 </ul>
-<a name="getFrags--">
+<a name="getAssignmentManager--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFrags</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.171">getFrags</a>()</pre>
+<h4>getAssignmentManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.171">getAssignmentManager</a>()</pre>
 </li>
 </ul>
-<a name="getFrags__IsNotDefault--">
+<a name="getAssignmentManager__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFrags__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.176">getFrags__IsNotDefault</a>()</pre>
+<h4>getAssignmentManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.176">getAssignmentManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setDeadServers-java.util.Set-">
+<a name="setCatalogJanitorEnabled-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.182">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
+<h4>setCatalogJanitorEnabled</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.182">setCatalogJanitorEnabled</a>(boolean&nbsp;catalogJanitorEnabled)</pre>
 </li>
 </ul>
-<a name="getDeadServers--">
+<a name="getCatalogJanitorEnabled--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getDeadServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.188">getDeadServers</a>()</pre>
+<h4>getCatalogJanitorEnabled</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.188">getCatalogJanitorEnabled</a>()</pre>
 </li>
 </ul>
-<a name="getDeadServers__IsNotDefault--">
+<a name="getCatalogJanitorEnabled__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getDeadServers__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.193">getDeadServers__IsNotDefault</a>()</pre>
+<h4>getCatalogJanitorEnabled__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.193">getCatalogJanitorEnabled__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
+<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.199">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;assignmentManager)</pre>
+<h4>setServerManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.199">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
 </li>
 </ul>
-<a name="getAssignmentManager--">
+<a name="getServerManager--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.205">getAssignmentManager</a>()</pre>
+<h4>getServerManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.205">getServerManager</a>()</pre>
 </li>
 </ul>
-<a name="getAssignmentManager__IsNotDefault--">
+<a name="getServerManager__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.210">getAssignmentManager__IsNotDefault</a>()</pre>
+<h4>getServerManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.210">getServerManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setFrags-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.216">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<h4>setFrags</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.216">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;frags)</pre>
 </li>
 </ul>
-<a name="getFormat--">
+<a name="getFrags--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.222">getFormat</a>()</pre>
+<h4>getFrags</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.222">getFrags</a>()</pre>
 </li>
 </ul>
-<a name="getFormat__IsNotDefault--">
+<a name="getFrags__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.227">getFormat__IsNotDefault</a>()</pre>
+<h4>getFrags__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.227">getFrags__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index 93e551c..3fd5543 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -337,67 +337,67 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="serverManager">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.277">serverManager</a></pre>
+<h4>filter</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.277">filter</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.284">filter</a></pre>
+<h4>deadServers</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.284">deadServers</a></pre>
 </li>
 </ul>
-<a name="catalogJanitorEnabled">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>catalogJanitorEnabled</h4>
-<pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.291">catalogJanitorEnabled</a></pre>
+<h4>format</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.291">format</a></pre>
 </li>
 </ul>
-<a name="frags">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>frags</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.298">frags</a></pre>
+<h4>assignmentManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.298">assignmentManager</a></pre>
 </li>
 </ul>
-<a name="deadServers">
+<a name="catalogJanitorEnabled">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>deadServers</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.305">deadServers</a></pre>
+<h4>catalogJanitorEnabled</h4>
+<pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.305">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.312">assignmentManager</a></pre>
+<h4>serverManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.312">serverManager</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.319">format</a></pre>
+<h4>frags</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.319">frags</a></pre>
 </li>
 </ul>
 <a name="metaLocation">
@@ -487,67 +487,67 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </dl>
 </li>
 </ul>
-<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.278">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
+<h4>setFilter</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.278">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setDeadServers-java.util.Set-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.285">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
+<h4>setDeadServers</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.285">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
 </li>
 </ul>
-<a name="setCatalogJanitorEnabled-boolean-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setCatalogJanitorEnabled</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.292">setCatalogJanitorEnabled</a>(boolean&nbsp;p_catalogJanitorEnabled)</pre>
+<h4>setFormat</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.292">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
-<a name="setFrags-java.util.Map-">
+<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFrags</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.299">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.299">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
 </li>
 </ul>
-<a name="setDeadServers-java.util.Set-">
+<a name="setCatalogJanitorEnabled-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setDeadServers</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.306">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
+<h4>setCatalogJanitorEnabled</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.306">setCatalogJanitorEnabled</a>(boolean&nbsp;p_catalogJanitorEnabled)</pre>
 </li>
 </ul>
-<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
+<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.313">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
+<h4>setServerManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.313">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setFrags-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.320">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
+<h4>setFrags</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.320">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
 </li>
 </ul>
 <a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index 6a01c00..ccf303c 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -278,67 +278,67 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/Master
 <pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.64">master</a></pre>
 </li>
 </ul>
-<a name="serverManager">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.65">serverManager</a></pre>
+<h4>filter</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.65">filter</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.66">filter</a></pre>
+<h4>deadServers</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.66">deadServers</a></pre>
 </li>
 </ul>
-<a name="catalogJanitorEnabled">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>catalogJanitorEnabled</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.67">catalogJanitorEnabled</a></pre>
+<h4>format</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.67">format</a></pre>
 </li>
 </ul>
-<a name="frags">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>frags</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.68">frags</a></pre>
+<h4>assignmentManager</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.68">assignmentManager</a></pre>
 </li>
 </ul>
-<a name="deadServers">
+<a name="catalogJanitorEnabled">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>deadServers</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.69">deadServers</a></pre>
+<h4>catalogJanitorEnabled</h4>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.69">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.70">assignmentManager</a></pre>
+<h4>serverManager</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.70">serverManager</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.71">format</a></pre>
+<h4>frags</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.71">frags</a></pre>
 </li>
 </ul>
 <a name="metaLocation">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index 0a3e814..2b7e0f8 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -293,76 +293,76 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.71">m_regionServer</a></pre>
 </li>
 </ul>
-<a name="m_bcn">
+<a name="m_filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcn</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.83">m_bcn</a></pre>
+<h4>m_filter</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.83">m_filter</a></pre>
 </li>
 </ul>
-<a name="m_bcn__IsNotDefault">
+<a name="m_filter__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcn__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.88">m_bcn__IsNotDefault</a></pre>
+<h4>m_filter__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.88">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_format">
+<a name="m_bcn">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.100">m_format</a></pre>
+<h4>m_bcn</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.100">m_bcn</a></pre>
 </li>
 </ul>
-<a name="m_format__IsNotDefault">
+<a name="m_bcn__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.105">m_format__IsNotDefault</a></pre>
+<h4>m_bcn__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.105">m_bcn__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_filter">
+<a name="m_bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_filter</a></pre>
+<h4>m_bcv</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_bcv</a></pre>
 </li>
 </ul>
-<a name="m_filter__IsNotDefault">
+<a name="m_bcv__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_filter__IsNotDefault</a></pre>
+<h4>m_bcv__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_bcv__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_bcv">
+<a name="m_format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcv</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.134">m_bcv</a></pre>
+<h4>m_format</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.134">m_format</a></pre>
 </li>
 </ul>
-<a name="m_bcv__IsNotDefault">
+<a name="m_format__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>m_bcv__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.139">m_bcv__IsNotDefault</a></pre>
+<h4>m_format__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.139">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
 </li>
@@ -408,112 +408,112 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.67">getRegionServer</a>()</pre>
 </li>
 </ul>
-<a name="setBcn-java.lang.String-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcn</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.73">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcn)</pre>
+<h4>setFilter</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.73">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
 </li>
 </ul>
-<a name="getBcn--">
+<a name="getFilter--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcn</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.79">getBcn</a>()</pre>
+<h4>getFilter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.79">getFilter</a>()</pre>
 </li>
 </ul>
-<a name="getBcn__IsNotDefault--">
+<a name="getFilter__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcn__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.84">getBcn__IsNotDefault</a>()</pre>
+<h4>getFilter__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.84">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setBcn-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.90">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<h4>setBcn</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.90">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcn)</pre>
 </li>
 </ul>
-<a name="getFormat--">
+<a name="getBcn--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.96">getFormat</a>()</pre>
+<h4>getBcn</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.96">getBcn</a>()</pre>
 </li>
 </ul>
-<a name="getFormat__IsNotDefault--">
+<a name="getBcn__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.101">getFormat__IsNotDefault</a>()</pre>
+<h4>getBcn__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.101">getBcn__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setBcv-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
+<h4>setBcv</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcv)</pre>
 </li>
 </ul>
-<a name="getFilter--">
+<a name="getBcv--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getFilter</a>()</pre>
+<h4>getBcv</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getBcv</a>()</pre>
 </li>
 </ul>
-<a name="getFilter__IsNotDefault--">
+<a name="getBcv__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getFilter__IsNotDefault</a>()</pre>
+<h4>getBcv__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getBcv__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setBcv-java.lang.String-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcv</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.124">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcv)</pre>
+<h4>setFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.124">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 </li>
 </ul>
-<a name="getBcv--">
+<a name="getFormat--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcv</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.130">getBcv</a>()</pre>
+<h4>getFormat</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.130">getFormat</a>()</pre>
 </li>
 </ul>
-<a name="getBcv__IsNotDefault--">
+<a name="getFormat__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getBcv__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.135">getBcv__IsNotDefault</a>()</pre>
+<h4>getFormat__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.135">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index 2a0bef3..a4c5a8c 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -297,40 +297,40 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="bcn">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcn</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">bcn</a></pre>
+<h4>filter</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">filter</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="bcn">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">format</a></pre>
+<h4>bcn</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">bcn</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">filter</a></pre>
+<h4>bcv</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">bcv</a></pre>
 </li>
 </ul>
-<a name="bcv">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>bcv</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">bcv</a></pre>
+<h4>format</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">format</a></pre>
 </li>
 </ul>
 </li>
@@ -402,40 +402,40 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </dl>
 </li>
 </ul>
-<a name="setBcn-java.lang.String-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcn</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcn)</pre>
+<h4>setFilter</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setBcn-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
+<h4>setBcn</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcn)</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setBcv-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
+<h4>setBcv</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcv)</pre>
 </li>
 </ul>
-<a name="setBcv-java.lang.String-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcv</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcv)</pre>
+<h4>setFormat</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
 <a name="constructImpl-java.lang.Class-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index 71224a6..96b2ff0 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -238,40 +238,40 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.28">regionServer</a></pre>
 </li>
 </ul>
-<a name="bcn">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcn</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.29">bcn</a></pre>
+<h4>filter</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.29">filter</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="bcn">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">format</a></pre>
+<h4>bcn</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">bcn</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">filter</a></pre>
+<h4>bcv</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">bcv</a></pre>
 </li>
 </ul>
-<a name="bcv">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>bcv</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.32">bcv</a></pre>
+<h4>format</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.32">format</a></pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 e6b4e39..a3d919a 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -520,13 +520,13 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 06bdf49..a62d1b9 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -166,9 +166,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/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/WALKey.Version.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALKey.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index e7af946..7924df5 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -1863,6 +1863,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlockIndex.BlockIndexWriter</span></a> (implements org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/InlineBlockWriter.html" title="interface in org.apache.hadoop.hbase.io.hfile">InlineBlockWriter</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">HFileCleaner.HFileDeleteTask</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileContext</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileContextBuilder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.hbck.<a href="org/apache/hadoop/hbase/util/hbck/HFileCorruptionChecker.html" title="class in org.apache.hadoop.hbase.util.hbck"><span class="typeNameLink">HFileCorruptionChecker</span></a></li>
@@ -3143,7 +3144,7 @@
 <li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master"><span class="typeNameLink">CatalogJanitor</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">CleanerChore</span></a>&lt;T&gt;
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">HFileCleaner</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">HFileCleaner</span></a> (implements org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">LogCleaner</span></a></li>
 </ul>
 </li>


[24/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 86f6ece..3abc5fe 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -301,7 +301,7 @@
 <td>2145</td>
 <td>0</td>
 <td>0</td>
-<td>14179</td></tr></table></div>
+<td>14180</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -3179,7 +3179,7 @@
 <td><a href="#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.java">org/apache/hadoop/hbase/master/cleaner/HFileCleaner.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.master.cleaner.HFileLinkCleaner.java">org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java</a></td>
 <td>0</td>
@@ -7093,7 +7093,7 @@
 <li>ordered: <tt>&quot;true&quot;</tt></li>
 <li>sortStaticImportsAlphabetically: <tt>&quot;true&quot;</tt></li>
 <li>option: <tt>&quot;top&quot;</tt></li></ul></td>
-<td>911</td>
+<td>912</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -7123,12 +7123,12 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>756</td>
+<td>761</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3267</td>
+<td>3262</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>misc</td>
@@ -12885,7 +12885,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>JavadocTagContinuationIndentation</td>
 <td>Javadoc comment at column 43 has parse error. Missed HTML close tag 'TableName'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>122</td></tr>
 <tr class="b">
@@ -15711,7 +15711,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>JavadocTagContinuationIndentation</td>
 <td>Javadoc comment at column 64 has parse error. Missed HTML close tag 'code'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>1955</td></tr>
 <tr class="b">
@@ -19959,7 +19959,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>JavadocTagContinuationIndentation</td>
 <td>Javadoc comment at column 37 has parse error. Details: no viable alternative at input '&lt;ColumnFamily,' while parsing HTML_ELEMENT</td>
 <td>30</td></tr></table></div>
 <div class="section">
@@ -38734,7 +38734,7 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
-<td>Method length is 188 lines (max allowed is 150).</td>
+<td>Method length is 189 lines (max allowed is 150).</td>
 <td>733</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -38753,1315 +38753,1315 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>974</td></tr>
+<td>975</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1037</td></tr>
+<td>1038</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1039</td></tr>
+<td>1040</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1041</td></tr>
+<td>1042</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1043</td></tr>
+<td>1044</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1045</td></tr>
+<td>1046</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1053</td></tr>
+<td>1054</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1054</td></tr>
+<td>1055</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1057</td></tr>
+<td>1058</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 3, expected level should be 4.</td>
-<td>1058</td></tr>
+<td>1059</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1120</td></tr>
+<td>1121</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1121</td></tr>
+<td>1122</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1122</td></tr>
+<td>1123</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1123</td></tr>
+<td>1124</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1124</td></tr>
+<td>1125</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1125</td></tr>
+<td>1126</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1126</td></tr>
+<td>1127</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1127</td></tr>
+<td>1128</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1128</td></tr>
+<td>1129</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1129</td></tr>
+<td>1130</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1130</td></tr>
+<td>1131</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1273</td></tr>
+<td>1274</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1295</td></tr>
+<td>1296</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1307</td></tr>
+<td>1308</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1339</td></tr>
+<td>1340</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
-<td>1481</td></tr>
+<td>1482</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
-<td>1485</td></tr>
+<td>1486</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1497</td></tr>
+<td>1498</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1499</td></tr>
+<td>1500</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1501</td></tr>
+<td>1502</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1504</td></tr>
+<td>1505</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1507</td></tr>
+<td>1508</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1508</td></tr>
+<td>1509</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1510</td></tr>
+<td>1511</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1512</td></tr>
+<td>1513</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1513</td></tr>
+<td>1514</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1514</td></tr>
+<td>1515</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1527</td></tr>
+<td>1528</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1529</td></tr>
+<td>1530</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1531</td></tr>
+<td>1532</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1534</td></tr>
+<td>1535</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1536</td></tr>
+<td>1537</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1538</td></tr>
+<td>1539</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1540</td></tr>
+<td>1541</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1541</td></tr>
+<td>1542</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1542</td></tr>
+<td>1543</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1638</td></tr>
+<td>1639</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1640</td></tr>
+<td>1641</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1642</td></tr>
+<td>1643</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1646</td></tr>
+<td>1647</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1647</td></tr>
+<td>1648</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1649</td></tr>
+<td>1650</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1651</td></tr>
+<td>1652</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1652</td></tr>
+<td>1653</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1654</td></tr>
+<td>1655</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1656</td></tr>
+<td>1657</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1657</td></tr>
+<td>1658</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1658</td></tr>
+<td>1659</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1688</td></tr>
+<td>1689</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1954</td></tr>
+<td>1955</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1962</td></tr>
+<td>1963</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1969</td></tr>
+<td>1970</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1977</td></tr>
+<td>1978</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2000</td></tr>
+<td>2001</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2002</td></tr>
+<td>2003</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2004</td></tr>
+<td>2005</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2007</td></tr>
+<td>2008</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2008</td></tr>
+<td>2009</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2010</td></tr>
+<td>2011</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2012</td></tr>
+<td>2013</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2013</td></tr>
+<td>2014</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2015</td></tr>
+<td>2016</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2017</td></tr>
+<td>2018</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2018</td></tr>
+<td>2019</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2019</td></tr>
+<td>2020</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2032</td></tr>
+<td>2033</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2034</td></tr>
+<td>2035</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2036</td></tr>
+<td>2037</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2037</td></tr>
+<td>2038</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2038</td></tr>
+<td>2039</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2040</td></tr>
+<td>2041</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2042</td></tr>
+<td>2043</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2043</td></tr>
+<td>2044</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2045</td></tr>
+<td>2046</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2047</td></tr>
+<td>2048</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2048</td></tr>
+<td>2049</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2049</td></tr>
+<td>2050</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2066</td></tr>
+<td>2067</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2068</td></tr>
+<td>2069</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2069</td></tr>
+<td>2070</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2070</td></tr>
+<td>2071</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2073</td></tr>
+<td>2074</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2074</td></tr>
+<td>2075</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2076</td></tr>
+<td>2077</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2078</td></tr>
+<td>2079</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2079</td></tr>
+<td>2080</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2081</td></tr>
+<td>2082</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2083</td></tr>
+<td>2084</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2084</td></tr>
+<td>2085</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2085</td></tr>
+<td>2086</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2102</td></tr>
+<td>2103</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2104</td></tr>
+<td>2105</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2105</td></tr>
+<td>2106</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2106</td></tr>
+<td>2107</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2108</td></tr>
+<td>2109</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2112</td></tr>
+<td>2113</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2113</td></tr>
+<td>2114</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2115</td></tr>
+<td>2116</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2117</td></tr>
+<td>2118</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2118</td></tr>
+<td>2119</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2120</td></tr>
+<td>2121</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2122</td></tr>
+<td>2123</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2123</td></tr>
+<td>2124</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2124</td></tr>
+<td>2125</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2138</td></tr>
+<td>2139</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2140</td></tr>
+<td>2141</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2141</td></tr>
+<td>2142</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2142</td></tr>
+<td>2143</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2144</td></tr>
+<td>2145</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>2146</td></tr>
+<td>2147</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2147</td></tr>
+<td>2148</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2148</td></tr>
+<td>2149</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2150</td></tr>
+<td>2151</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2152</td></tr>
+<td>2153</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2153</td></tr>
+<td>2154</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2155</td></tr>
+<td>2156</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2157</td></tr>
+<td>2158</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2158</td></tr>
+<td>2159</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2159</td></tr>
+<td>2160</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2169</td></tr>
+<td>2170</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2171</td></tr>
+<td>2172</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2173</td></tr>
+<td>2174</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2180</td></tr>
+<td>2181</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2181</td></tr>
+<td>2182</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2183</td></tr>
+<td>2184</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2185</td></tr>
+<td>2186</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2186</td></tr>
+<td>2187</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2188</td></tr>
+<td>2189</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2190</td></tr>
+<td>2191</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2191</td></tr>
+<td>2192</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2192</td></tr>
+<td>2193</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2202</td></tr>
+<td>2203</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2204</td></tr>
+<td>2205</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2206</td></tr>
+<td>2207</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2213</td></tr>
+<td>2214</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2214</td></tr>
+<td>2215</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2216</td></tr>
+<td>2217</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2218</td></tr>
+<td>2219</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2219</td></tr>
+<td>2220</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2221</td></tr>
+<td>2222</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2223</td></tr>
+<td>2224</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2224</td></tr>
+<td>2225</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2225</td></tr>
+<td>2226</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2272</td></tr>
+<td>2273</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2274</td></tr>
+<td>2275</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2276</td></tr>
+<td>2277</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2279</td></tr>
+<td>2280</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2280</td></tr>
+<td>2281</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2282</td></tr>
+<td>2283</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2284</td></tr>
+<td>2285</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2285</td></tr>
+<td>2286</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2287</td></tr>
+<td>2288</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2289</td></tr>
+<td>2290</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2290</td></tr>
+<td>2291</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2291</td></tr>
+<td>2292</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2305</td></tr>
+<td>2306</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2307</td></tr>
+<td>2308</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2308</td></tr>
+<td>2309</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2310</td></tr>
+<td>2311</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2312</td></tr>
+<td>2313</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2313</td></tr>
+<td>2314</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2314</td></tr>
+<td>2315</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2464</td></tr>
+<td>2465</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2544</td></tr>
+<td>2545</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2545</td></tr>
+<td>2546</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>2676</td></tr>
+<td>2677</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2750</td></tr>
+<td>2751</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2752</td></tr>
+<td>2753</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2753</td></tr>
+<td>2754</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2754</td></tr>
+<td>2755</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2755</td></tr>
+<td>2756</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2758</td></tr>
+<td>2759</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2759</td></tr>
+<td>2760</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2760</td></tr>
+<td>2761</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2762</td></tr>
+<td>2763</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2764</td></tr>
+<td>2765</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2765</td></tr>
+<td>2766</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2766</td></tr>
+<td>2767</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2784</td></tr>
+<td>2785</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2786</td></tr>
+<td>2787</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2787</td></tr>
+<td>2788</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2788</td></tr>
+<td>2789</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2789</td></tr>
+<td>2790</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2792</td></tr>
+<td>2793</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2793</td></tr>
+<td>2794</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2794</td></tr>
+<td>2795</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2796</td></tr>
+<td>2797</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2798</td></tr>
+<td>2799</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2799</td></tr>
+<td>2800</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2800</td></tr>
+<td>2801</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2816</td></tr>
+<td>2817</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2818</td></tr>
+<td>2819</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2819</td></tr>
+<td>2820</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2820</td></tr>
+<td>2821</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2821</td></tr>
+<td>2822</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2824</td></tr>
+<td>2825</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2825</td></tr>
+<td>2826</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2826</td></tr>
+<td>2827</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2828</td></tr>
+<td>2829</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2830</td></tr>
+<td>2831</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2831</td></tr>
+<td>2832</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2832</td></tr>
+<td>2833</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2842</td></tr>
+<td>2843</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2844</td></tr>
+<td>2845</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2861</td></tr>
+<td>2862</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2945</td></tr>
+<td>2946</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>2948</td></tr>
+<td>2949</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>2955</td></tr>
+<td>2956</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2989</td></tr></table></div>
+<td>2990</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.HMasterCommandLine.java">org/apache/hadoop/hbase/master/HMasterCommandLine.java</h3>
 <table border="0" class="table table-striped">
@@ -44933,7 +44933,7 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>308</td></tr></table></div>
+<td>316</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.FileCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.java</h3>
 <table border="0" class="table table-striped">
@@ -44969,23 +44969,29 @@
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
-<td>24</td></tr></table></div>
+<td>31</td></tr>
+<tr class="b">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>imports</td>
+<td>ImportOrder</td>
+<td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
+<td>39</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.HFileLinkCleaner.java">org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>50</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -44994,49 +45000,49 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.ReplicationZKNodeCleaner.java">org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.util.Map.Entry' import.</td>
 <td>27</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>73</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>104</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>136</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>156</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>180</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -45045,13 +45051,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner.java">org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -45060,13 +45066,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner.java">org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -45075,25 +45081,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.locking.LockManager.java">org/apache/hadoop/hbase/master/locking/LockManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td>30</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>77</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -45102,37 +45108,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.locking.LockProcedure.java">org/apache/hadoop/hbase/master/locking/LockProcedure.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td>38</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>209</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>212</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>237</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -45141,13 +45147,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.normalizer.MergeNormalizationPlan.java">org/apache/hadoop/hbase/master/normalizer/MergeNormalizationPlan.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -45156,13 +45162,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore.java">org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -45171,13 +45177,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.normalizer.SplitNormalizationPlan.java">org/apache/hadoop/hbase/master/normalizer/SplitNormalizationPlan.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -45186,13 +45192,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.AbstractStateMachineNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -45201,19 +45207,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.AbstractStateMachineTableProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>78</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -45222,187 +45228,187 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.AddColumnFamilyProcedure.java">org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>86</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>87</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>88</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>89</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>90</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>91</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>92</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>93</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>94</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>95</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>96</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>97</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>98</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>99</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>100</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>101</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>102</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>103</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>104</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>105</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>106</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>192</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>223</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>244</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>245</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>296</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>297</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>307</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>343</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -45411,61 +45417,61 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.CloneSnapshotProcedure.java">org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.base.Preconditions' import.</td>
 <td>63</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>289</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>301</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>302</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>329</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>330</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>345</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>406</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -45474,157 +45480,157 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>67</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>68</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>69</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>70</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>71</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>72</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>73</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>74</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>75</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>76</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>77</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>78</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>79</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>80</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>81</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>82</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>83</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>84</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>85</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>86</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>87</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>190</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>203</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>217</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtcl

<TRUNCATED>

[13/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
index 99a5bb1..98b388b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
@@ -893,2422 +893,2423 @@
 <span class="sourceLineNo">885</span>    status.markComplete("Initialization successful");<a name="line.885"></a>
 <span class="sourceLineNo">886</span>    LOG.info("Master has completed initialization");<a name="line.886"></a>
 <span class="sourceLineNo">887</span>    configurationManager.registerObserver(this.balancer);<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>    // Set master as 'initialized'.<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    setInitialized(true);<a name="line.890"></a>
-<span class="sourceLineNo">891</span><a name="line.891"></a>
-<span class="sourceLineNo">892</span>    status.setStatus("Assign meta replicas");<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    metaBootstrap.assignMetaReplicas();<a name="line.893"></a>
-<span class="sourceLineNo">894</span><a name="line.894"></a>
-<span class="sourceLineNo">895</span>    status.setStatus("Starting quota manager");<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    initQuotaManager();<a name="line.896"></a>
-<span class="sourceLineNo">897</span><a name="line.897"></a>
-<span class="sourceLineNo">898</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    // master initialization. See HBASE-5916.<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.901"></a>
-<span class="sourceLineNo">902</span><a name="line.902"></a>
-<span class="sourceLineNo">903</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    status.setStatus("Checking ZNode ACLs");<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.905"></a>
-<span class="sourceLineNo">906</span><a name="line.906"></a>
-<span class="sourceLineNo">907</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    initMobCleaner();<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (this.cpHost != null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      // don't let cp initialization errors kill the master<a name="line.912"></a>
-<span class="sourceLineNo">913</span>      try {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>        this.cpHost.postStartMaster();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>      } catch (IOException ioe) {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>    zombieDetector.interrupt();<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  }<a name="line.921"></a>
-<span class="sourceLineNo">922</span><a name="line.922"></a>
-<span class="sourceLineNo">923</span>  private void initMobCleaner() {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    this.expiredMobFileCleanerChore = new ExpiredMobFileCleanerChore(this);<a name="line.924"></a>
-<span class="sourceLineNo">925</span>    getChoreService().scheduleChore(expiredMobFileCleanerChore);<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>    int mobCompactionPeriod = conf.getInt(MobConstants.MOB_COMPACTION_CHORE_PERIOD,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        MobConstants.DEFAULT_MOB_COMPACTION_CHORE_PERIOD);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    if (mobCompactionPeriod &gt; 0) {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      this.mobCompactChore = new MobCompactionChore(this, mobCompactionPeriod);<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      getChoreService().scheduleChore(mobCompactChore);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    } else {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      LOG<a name="line.933"></a>
-<span class="sourceLineNo">934</span>        .info("The period is " + mobCompactionPeriod + " seconds, MobCompactionChore is disabled");<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.mobCompactThread = new MasterMobCompactionThread(this);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>  }<a name="line.937"></a>
-<span class="sourceLineNo">938</span><a name="line.938"></a>
-<span class="sourceLineNo">939</span>  /**<a name="line.939"></a>
-<span class="sourceLineNo">940</span>   * Create a {@link MasterMetaBootstrap} instance.<a name="line.940"></a>
-<span class="sourceLineNo">941</span>   */<a name="line.941"></a>
-<span class="sourceLineNo">942</span>  MasterMetaBootstrap createMetaBootstrap(final HMaster master, final MonitoredTask status) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    // w/ a mocked up MasterMetaBootstrap.<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    return new MasterMetaBootstrap(master, status);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>  }<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>   * Create a {@link ServerManager} instance.<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   */<a name="line.950"></a>
-<span class="sourceLineNo">951</span>  ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    // w/ a mocked up ServerManager.<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    setupClusterConnection();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    return new ServerManager(master);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>  }<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      throws IOException, InterruptedException {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    this.serverManager.waitForRegionServers(status);<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    // Check zk for region servers that are up but didn't register<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (ServerName sn: this.regionServerTracker.getOnlineServers()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // The isServerOnline check is opportunistic, correctness is handled inside<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!this.serverManager.isServerOnline(sn)<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          &amp;&amp; serverManager.checkAndRecordNewServer(sn, ServerLoad.EMPTY_SERVERLOAD)) {<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        LOG.info("Registered server found up in zk but who has not yet reported in: " + sn);<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<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><a name="line.970"></a>
-<span class="sourceLineNo">971</span>  void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    this.clusterSchemaService = new ClusterSchemaServiceImpl(this);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    this.clusterSchemaService.startAndWait();<a name="line.973"></a>
-<span class="sourceLineNo">974</span>    if (!this.clusterSchemaService.isRunning()) throw new HBaseIOException("Failed start");<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  }<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>  void initQuotaManager() throws IOException {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    MasterQuotaManager quotaManager = new MasterQuotaManager(this);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.assignmentManager.setRegionStateListener((RegionStateListener)quotaManager);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    quotaManager.start();<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    this.quotaManager = quotaManager;<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>  boolean isCatalogJanitorEnabled() {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    return catalogJanitorChore != null ?<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      catalogJanitorChore.getEnabled() : false;<a name="line.986"></a>
-<span class="sourceLineNo">987</span>  }<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>  boolean isCleanerChoreEnabled() {<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    boolean hfileCleanerFlag = true, logCleanerFlag = true;<a name="line.990"></a>
-<span class="sourceLineNo">991</span><a name="line.991"></a>
-<span class="sourceLineNo">992</span>    if (hfileCleaner != null) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>      hfileCleanerFlag = hfileCleaner.getEnabled();<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>    if (logCleaner != null) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      logCleanerFlag = logCleaner.getEnabled();<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    }<a name="line.998"></a>
-<span class="sourceLineNo">999</span><a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    return (hfileCleanerFlag &amp;&amp; logCleanerFlag);<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  }<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span><a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>  @Override<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  public TableDescriptors getTableDescriptors() {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    return this.tableDescriptors;<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>  }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span><a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  @Override<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  public ServerManager getServerManager() {<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    return this.serverManager;<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>  }<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span><a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  @Override<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    return this.fileSystemManager;<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  }<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span><a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>  @Override<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>  public MasterWalManager getMasterWalManager() {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>    return this.walManager;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>  }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span><a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  @Override<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  public TableStateManager getTableStateManager() {<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    return tableStateManager;<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  }<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span><a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>  /*<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   * Start up all services. If any of these threads gets an unhandled exception<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * then they just die with a logged message.  This should be fine because<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   * in general, we do not expect the master to get such unhandled exceptions<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>   *  as OOMEs; it should be lightly loaded. See what HRegionServer does if<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   *  need to install an unexpected exception handler.<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   */<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>  private void startServiceThreads() throws IOException{<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   // Start the executor service pools<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   this.service.startExecutorService(ExecutorType.MASTER_OPEN_REGION,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>      conf.getInt("hbase.master.executor.openregion.threads", 5));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>   this.service.startExecutorService(ExecutorType.MASTER_CLOSE_REGION,<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      conf.getInt("hbase.master.executor.closeregion.threads", 5));<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   this.service.startExecutorService(ExecutorType.MASTER_SERVER_OPERATIONS,<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      conf.getInt("hbase.master.executor.serverops.threads", 5));<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   this.service.startExecutorService(ExecutorType.MASTER_META_SERVER_OPERATIONS,<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      conf.getInt("hbase.master.executor.meta.serverops.threads", 5));<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>   this.service.startExecutorService(ExecutorType.M_LOG_REPLAY_OPS,<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      conf.getInt("hbase.master.executor.logreplayops.threads", 10));<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span><a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>   // We depend on there being only one instance of this executor running<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>   // at a time.  To do concurrency, would need fencing of enable/disable of<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>   // tables.<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>   // Any time changing this maxThreads to &gt; 1, pls see the comment at<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>   // AccessController#postCompletedCreateTableAction<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>   this.service.startExecutorService(ExecutorType.MASTER_TABLE_OPERATIONS, 1);<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   startProcedureExecutor();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span><a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>   // Start log cleaner thread<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>   int cleanerInterval = conf.getInt("hbase.master.cleaner.interval", 60 * 1000);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>   this.logCleaner =<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      new LogCleaner(cleanerInterval,<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>         this, conf, getMasterWalManager().getFileSystem(),<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>         getMasterWalManager().getOldLogDir());<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    getChoreService().scheduleChore(logCleaner);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>   //start the hfile archive cleaner thread<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    Path archiveDir = HFileArchiveUtil.getArchivePath(conf);<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    Map&lt;String, Object&gt; params = new HashMap&lt;&gt;();<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    params.put(MASTER, this);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    this.hfileCleaner = new HFileCleaner(cleanerInterval, this, conf, getMasterFileSystem()<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        .getFileSystem(), archiveDir, params);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>    getChoreService().scheduleChore(hfileCleaner);<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>    serviceStarted = true;<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    if (LOG.isTraceEnabled()) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      LOG.trace("Started service threads");<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    // Start replication zk node cleaner<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    if (conf.getClass("hbase.region.replica.replication.replicationQueues.class",<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      ReplicationFactory.defaultReplicationQueueClass) == ReplicationQueuesZKImpl.class) {<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>      try {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>        replicationZKNodeCleanerChore = new ReplicationZKNodeCleanerChore(this, cleanerInterval,<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>            new ReplicationZKNodeCleaner(this.conf, this.getZooKeeper(), this));<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>        getChoreService().scheduleChore(replicationZKNodeCleanerChore);<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>      } catch (Exception e) {<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        LOG.error("start replicationZKNodeCleanerChore failed", e);<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>    replicationMetaCleaner = new ReplicationMetaCleaner(this, this, cleanerInterval);<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    getChoreService().scheduleChore(replicationMetaCleaner);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>  }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  @Override<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  protected void sendShutdownInterrupt() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    super.sendShutdownInterrupt();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    stopProcedureExecutor();<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span><a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>  @Override<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  protected void stopServiceThreads() {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    if (masterJettyServer != null) {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      LOG.info("Stopping master jetty server");<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>      try {<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        masterJettyServer.stop();<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      } catch (Exception e) {<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        LOG.error("Failed to stop master jetty server", e);<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>    super.stopServiceThreads();<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    stopChores();<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span><a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    // Wait for all the remaining region servers to report in IFF we were<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    // running a cluster shutdown AND we were NOT aborting.<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    if (!isAborted() &amp;&amp; this.serverManager != null &amp;&amp;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>        this.serverManager.isClusterShutdown()) {<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      this.serverManager.letRegionServersShutdown();<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>    }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    if (LOG.isDebugEnabled()) {<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      LOG.debug("Stopping service threads");<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    }<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Clean up and close up shop<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    if (this.logCleaner != null) this.logCleaner.cancel(true);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    if (this.hfileCleaner != null) this.hfileCleaner.cancel(true);<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.replicationZKNodeCleanerChore != null) this.replicationZKNodeCleanerChore.cancel(true);<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>    if (this.replicationMetaCleaner != null) this.replicationMetaCleaner.cancel(true);<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>    if (this.quotaManager != null) this.quotaManager.stop();<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    if (this.activeMasterManager != null) this.activeMasterManager.stop();<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>    if (this.serverManager != null) this.serverManager.stop();<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    if (this.assignmentManager != null) this.assignmentManager.stop();<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>    if (this.walManager != null) this.walManager.stop();<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>    if (this.fileSystemManager != null) this.fileSystemManager.stop();<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>    if (this.mpmHost != null) this.mpmHost.stop("server shutting down.");<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>  private void startProcedureExecutor() throws IOException {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    final MasterProcedureEnv procEnv = new MasterProcedureEnv(this);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    final Path walDir = new Path(FSUtils.getWALRootDir(this.conf),<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        MasterProcedureConstants.MASTER_PROCEDURE_LOGDIR);<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span><a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    procedureStore = new WALProcedureStore(conf, walDir.getFileSystem(conf), walDir,<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        new MasterProcedureEnv.WALStoreLeaseRecovery(this));<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    procedureStore.registerListener(new MasterProcedureEnv.MasterProcedureStoreListener(this));<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>    procedureExecutor = new ProcedureExecutor(conf, procEnv, procedureStore,<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>        procEnv.getProcedureScheduler());<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>    configurationManager.registerObserver(procEnv);<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span><a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS,<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        Math.max(Runtime.getRuntime().availableProcessors(),<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>          MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    final boolean abortOnCorruption = conf.getBoolean(<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>        MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    procedureStore.start(numThreads);<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>    procedureExecutor.start(numThreads, abortOnCorruption);<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>  }<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span><a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  private void stopProcedureExecutor() {<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>    if (procedureExecutor != null) {<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      configurationManager.deregisterObserver(procedureExecutor.getEnvironment());<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      procedureExecutor.stop();<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    if (procedureStore != null) {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      procedureStore.stop(isAborted());<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>  private void stopChores() {<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (this.expiredMobFileCleanerChore != null) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      this.expiredMobFileCleanerChore.cancel(true);<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    if (this.mobCompactChore != null) {<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>      this.mobCompactChore.cancel(true);<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>    }<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    if (this.balancerChore != null) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>      this.balancerChore.cancel(true);<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    if (this.normalizerChore != null) {<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>      this.normalizerChore.cancel(true);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    }<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    if (this.clusterStatusChore != null) {<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>      this.clusterStatusChore.cancel(true);<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>    }<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    if (this.catalogJanitorChore != null) {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      this.catalogJanitorChore.cancel(true);<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>    }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    if (this.clusterStatusPublisherChore != null){<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>      clusterStatusPublisherChore.cancel(true);<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    }<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    if (this.mobCompactThread != null) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>      this.mobCompactThread.close();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>    if (this.periodicDoMetricsChore != null) {<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      periodicDoMetricsChore.cancel();<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>  }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>  /**<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   * @return Get remote side's InetAddress<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>   */<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>  InetAddress getRemoteInetAddress(final int port,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>      final long serverStartCode) throws UnknownHostException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>    // Do it out here in its own little method so can fake an address when<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>    // mocking up in tests.<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>    InetAddress ia = RpcServer.getRemoteIp();<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span><a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    // The call could be from the local regionserver,<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>    // in which case, there is no remote address.<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    if (ia == null &amp;&amp; serverStartCode == startcode) {<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      InetSocketAddress isa = rpcServices.getSocketAddress();<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>      if (isa != null &amp;&amp; isa.getPort() == port) {<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        ia = isa.getAddress();<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      }<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    return ia;<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>  /**<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>   * @return Maximum time we should run balancer for<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>   */<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  private int getMaxBalancingTime() {<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    int maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_MAX_BALANCING, -1);<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>    if (maxBalancingTime == -1) {<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // if max balancing time isn't set, defaulting it to period time<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_PERIOD,<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>        HConstants.DEFAULT_HBASE_BALANCER_PERIOD);<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    return maxBalancingTime;<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>  /**<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>   * @return Maximum number of regions in transition<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>   */<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>  private int getMaxRegionsInTransition() {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    int numRegions = this.assignmentManager.getRegionStates().getRegionAssignments().size();<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>    return Math.max((int) Math.floor(numRegions * this.maxRitPercent), 1);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>  }<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>   * It first sleep to the next balance plan start time. Meanwhile, throttling by the max<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>   * number regions in transition to protect availability.<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>   * @param nextBalanceStartTime The next balance plan start time<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>   * @param maxRegionsInTransition max number of regions in transition<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>   * @param cutoffTime when to exit balancer<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>   */<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>  private void balanceThrottling(long nextBalanceStartTime, int maxRegionsInTransition,<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>      long cutoffTime) {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    boolean interrupted = false;<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>    // Sleep to next balance plan start time<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>    // But if there are zero regions in transition, it can skip sleep to speed up.<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    while (!interrupted &amp;&amp; System.currentTimeMillis() &lt; nextBalanceStartTime<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount() != 0) {<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>      try {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>        Thread.sleep(100);<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      } catch (InterruptedException ie) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>        interrupted = true;<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      }<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>    // Throttling by max number regions in transition<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    while (!interrupted<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        &amp;&amp; maxRegionsInTransition &gt; 0<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount()<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>        &gt;= maxRegionsInTransition &amp;&amp; System.currentTimeMillis() &lt;= cutoffTime) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      try {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        // sleep if the number of regions in transition exceeds the limit<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>        Thread.sleep(100);<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>      } catch (InterruptedException ie) {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>        interrupted = true;<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><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    if (interrupted) Thread.currentThread().interrupt();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>  }<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span><a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>  public boolean balance() throws IOException {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    return balance(false);<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  }<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  public boolean balance(boolean force) throws IOException {<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    // if master not initialized, don't run balancer.<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    if (!isInitialized()) {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>      LOG.debug("Master has not been initialized, don't run balancer.");<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>      LOG.info("Master is in maintenanceMode mode, don't run balancer.");<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      return false;<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>    int maxRegionsInTransition = getMaxRegionsInTransition();<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    synchronized (this.balancer) {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>      // If balance not true, don't run balancer.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>      if (!this.loadBalancerTracker.isBalancerOn()) return false;<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>      // Only allow one balance run at at time.<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      if (this.assignmentManager.getRegionStates().isRegionsInTransition()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>        Set&lt;RegionState&gt; regionsInTransition =<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>          this.assignmentManager.getRegionStates().getRegionsInTransition();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>        // if hbase:meta region is in transition, result of assignment cannot be recorded<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        // ignore the force flag in that case<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>        boolean metaInTransition = assignmentManager.getRegionStates().isMetaRegionInTransition();<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>        String prefix = force &amp;&amp; !metaInTransition ? "R" : "Not r";<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>        LOG.debug(prefix + "unning balancer because " + regionsInTransition.size() +<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>          " region(s) in transition: " + org.apache.commons.lang.StringUtils.<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>            abbreviate(regionsInTransition.toString(), 256));<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>        if (!force || metaInTransition) return false;<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      }<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      if (this.serverManager.areDeadServersInProgress()) {<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>        LOG.debug("Not running balancer because processing dead regionserver(s): " +<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>          this.serverManager.getDeadServers());<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>        return false;<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>      }<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span><a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      if (this.cpHost != null) {<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>        try {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>          if (this.cpHost.preBalance()) {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>            LOG.debug("Coprocessor bypassing balancer request");<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>            return false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>          }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>        } catch (IOException ioe) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          LOG.error("Error invoking master coprocessor preBalance()", ioe);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>          return false;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        }<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      }<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span><a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>      Map&lt;TableName, Map&lt;ServerName, List&lt;HRegionInfo&gt;&gt;&gt; assignmentsByTable =<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>        this.assignmentManager.getRegionStates().getAssignmentsByTable();<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span><a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>      //Give the balancer the current cluster state.<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>      this.balancer.setClusterStatus(getClusterStatus());<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>      this.balancer.setClusterLoad(<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>              this.assignmentManager.getRegionStates().getAssignmentsByTable(true));<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span><a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>      for (Entry&lt;TableName, Map&lt;ServerName, List&lt;HRegionInfo&gt;&gt;&gt; e : assignmentsByTable.entrySet()) {<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        List&lt;RegionPlan&gt; partialPlans = this.balancer.balanceCluster(e.getKey(), e.getValue());<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        if (partialPlans != null) plans.addAll(partialPlans);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      long balanceStartTime = System.currentTimeMillis();<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      long cutoffTime = balanceStartTime + this.maxBlancingTime;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>      int rpCount = 0;  // number of RegionPlans balanced so far<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (plans != null &amp;&amp; !plans.isEmpty()) {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>        int balanceInterval = this.maxBlancingTime / plans.size();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>        LOG.info("Balancer plans size is " + plans.size() + ", the balance interval is "<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>            + balanceInterval + " ms, and the max number regions in transition is "<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>            + maxRegionsInTransition);<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>        for (RegionPlan plan: plans) {<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>          LOG.info("balance " + plan);<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          //TODO: bulk assign<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>          this.assignmentManager.balance(plan);<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>          rpCount++;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span><a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>            cutoffTime);<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span><a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>            // a security net for now)<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>                + this.maxBlancingTime);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>            break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>          }<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><a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      if (this.cpHost != null) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>        try {<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>        } catch (IOException ioe) {<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>          // balancing already succeeded so don't change the result<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>        }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      }<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>    }<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>    // Return true indicating a success.<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    return true;<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>  }<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span><a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>  @Override<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>  @VisibleForTesting<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>    return this.normalizer;<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>  }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span><a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>  /**<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>   *<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>   *    is globally disabled)<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>   */<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  public boolean normalizeRegions() throws IOException {<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (!isInitialized()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>      return false;<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    }<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span><a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>    if (isInMaintenanceMode()) {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      return false;<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    }<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      return false;<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>    synchronized (this.normalizer) {<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      // Don't run the normalizer concurrently<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span><a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>      Collections.shuffle(allEnabledTables);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span><a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      for (TableName table : allEnabledTables) {<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>        if (isInMaintenanceMode()) {<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>          return false;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>        }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>        HTableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>          LOG.debug("Skipping normalization for table: " + table + ", as it's either system"<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>              + " table or doesn't have auto normalization turned on");<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>          continue;<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>        }<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>        if (plans != null) {<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>          for (NormalizationPlan plan : plans) {<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>              splitPlanCount++;<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>              mergePlanCount++;<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>            }<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>          }<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>        }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      }<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    // Return true indicating a success.<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>    return true;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>  }<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span><a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>  /**<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   */<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>  String getClientIdAuditPrefix() {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>    return "Client=" + RpcServer.getRequestUserName() + "/" + RpcServer.getRemoteAddress();<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>  }<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span><a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>  /**<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * Switch for the background CatalogJanitor thread.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * if disabled.<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   */<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  }<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span><a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  @Override<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>  public long mergeRegions(<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>      final HRegionInfo[] regionsToMerge,<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      final boolean forcible,<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      final long nonceGroup,<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      final long nonce) throws IOException {<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    checkInitialized();<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span><a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>    assert(regionsToMerge.length == 2);<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span><a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>    }<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span><a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      throw new IOException (<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    if (regionsToMerge[0].compareTo(regionsToMerge[1]) == 0) {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      throw new MergeRegionException(<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span><a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      @Override<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>      protected void run() throws IOException {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span><a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span><a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>          regionsToMerge, forcible));<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span><a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      }<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span><a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      @Override<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      protected String getDescription() {<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        return "DisableTableProcedure";<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>      }<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>    });<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>  }<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span><a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>  @Override<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>  public long splitRegion(<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      final HRegionInfo regionInfo,<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      final byte[] splitRow,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      final long nonceGroup,<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      final long nonce) throws IOException {<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>    checkInitialized();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      @Override<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      protected void run() throws IOException {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span><a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>        LOG.info(getClientIdAuditPrefix() + " Split region " + regionInfo);<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>        // Execute the operation asynchronously<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>        submitProcedure(new SplitTableRegionProcedure(procedureExecutor.getEnvironment(),<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>            regionInfo, splitRow));<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      }<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span><a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      @Override<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      protected String getDescription() {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>        return "DisableTableProcedure";<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>      }<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>    });<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>  }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span><a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>  @VisibleForTesting // Public so can be accessed by tests.<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  public void move(final byte[] encodedRegionName,<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      final byte[] destServerName) throws HBaseIOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span><a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    HRegionInfo hri;<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>    if (regionState != null) {<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      hri = regionState.getRegion();<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } else {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span><a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    ServerName dest;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>        "choosing a server at random");<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>        regionState.getServerName());<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      if (dest == null) {<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>        return;<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      }<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    } else {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      if (dest == null) {<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        return;<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      }<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>        // regions on master. Regions on master could be put on other region<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>        // server intentionally by test however.<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>          + " because it should not be on master");<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>        return;<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>      }<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    }<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span><a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      return;<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    // Now we can do the move<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span><a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      checkInitialized();<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      if (this.cpHost != null) {<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        if (this.cpHost.preMove(hri, rp.getSource(), rp.getDestination())) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>          return;<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>        }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      }<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // warmup the region on the destination before initiating the move. this call<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>      // closed<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>      this.assignmentManager.balance(rp);<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>      if (this.cpHost != null) {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>      }<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    } catch (IOException ioe) {<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>      if (ioe instanceof HBaseIOException) {<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>        throw (HBaseIOException)ioe;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>      }<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      throw new HBaseIOException(ioe);<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    }<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>  }<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span><a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>  @Override<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>  public long createTable(<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      final HTableDescriptor hTableDescriptor,<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      final byte [][] splitKeys,<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      final long nonceGroup,<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      final long nonce) throws IOException {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>    checkInitialized();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span><a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>    String namespace = hTableDescriptor.getTableName().getNamespaceAsString();<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span><a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    HRegionInfo[] newRegions = ModifyRegionUtils.createHRegionInfos(hTableDescriptor, splitKeys);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>    sanityCheckTableDescriptor(hTableDescriptor);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span><a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      @Override<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      protected void run() throws IOException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>        getMaster().getMasterCoprocessorHost().preCreateTable(hTableDescriptor, newRegions);<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span><a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor);<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span><a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createLatch();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        submitProcedure(new CreateTableProcedure(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>            procedureExecutor.getEnvironment(), hTableDescriptor, newRegions, latch));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>        latch.await();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span><a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        getMaster().getMasterCoprocessorHost().postCreateTable(hTableDescriptor, newRegions);<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      }<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span><a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      @Override<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      protected String getDescription() {<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>        return "CreateTableProcedure";<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      }<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>    });<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>  }<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span><a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>  @Override<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>  public long createSystemTable(final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>    if (isStopped()) {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      throw new MasterNotRunningException();<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    }<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    TableName tableName = hTableDescriptor.getTableName();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>    if (!(tableName.isSystemTable())) {<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>      throw new IllegalArgumentException(<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        "Only system table creation can use this createSystemTable API");<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>    }<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span><a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>    HRegionInfo[] newRegions = ModifyRegionUtils.createHRegionInfos(hTableDescriptor, null);<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span><a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span><a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>    // to use nonce to detect duplicated RPC call.<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), hTableDescriptor, newRegions));<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span><a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>    return procId;<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>  }<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span><a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>  /**<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>   * @throws IOException<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>   */<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>  private void sanityCheckTableDescriptor(final HTableDescriptor htd) throws IOException {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>    boolean logWarn = false;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      logWarn = true;<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    }<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    String tableVal = htd.getConfigurationValue(CONF_KEY);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      logWarn = true;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    }<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span><a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    // check max file size<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    if (maxFileSize &lt; 0) {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>    }<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          + "number of regions.";<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>    }<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span><a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>    // check flush size<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    if (flushSize &lt; 0) {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          + " very frequent flushing.";<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>    }<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span><a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>    try {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>      checkClassLoading(conf, htd);<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>    } catch (Exception ex) {<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span><a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    // check compression can be loaded<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    try {<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      checkCompression(htd);<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    } catch (IOException e) {<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>    }<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span><a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>    // check encryption can be loaded<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>    try {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>      checkEncryption(conf, htd);<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    } catch (IOException e) {<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    // Verify compaction policy<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>    try{<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      checkCompactionPolicy(conf, htd);<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    } catch(IOException e){<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    }<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    // check that we have at least 1 CF<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      String message = "Table should have at least one column family.";<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>    }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>    for (HColumnDescriptor hcd : htd.getColumnFamilies()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, 

<TRUNCATED>

[12/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html
index 554525c..2a2807b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html
@@ -54,7 +54,7 @@
 <span class="sourceLineNo">046</span><a name="line.46"></a>
 <span class="sourceLineNo">047</span>  private static final Log LOG = LogFactory.getLog(CleanerChore.class.getName());<a name="line.47"></a>
 <span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private final FileSystem fs;<a name="line.49"></a>
+<span class="sourceLineNo">049</span>  protected final FileSystem fs;<a name="line.49"></a>
 <span class="sourceLineNo">050</span>  private final Path oldFileDir;<a name="line.50"></a>
 <span class="sourceLineNo">051</span>  private final Configuration conf;<a name="line.51"></a>
 <span class="sourceLineNo">052</span>  protected List&lt;T&gt; cleanersChain;<a name="line.52"></a>
@@ -277,52 +277,60 @@
 <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>    Iterable&lt;FileStatus&gt; filesToDelete = Iterables.concat(invalidFiles, deletableValidFiles);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    int deletedFileCount = 0;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    for (FileStatus file : filesToDelete) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      Path filePath = file.getPath();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      if (LOG.isDebugEnabled()) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        LOG.debug("Removing: " + filePath + " from archive");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      try {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        boolean success = this.fs.delete(filePath, false);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (success) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          deletedFileCount++;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        } else {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          LOG.warn("Attempted to delete:" + filePath<a name="line.283"></a>
-<span class="sourceLineNo">284</span>              + ", but couldn't. Run cleaner chain and attempt to delete on next pass.");<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        }<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      } catch (IOException e) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        e = e instanceof RemoteException ?<a name="line.287"></a>
-<span class="sourceLineNo">288</span>                  ((RemoteException)e).unwrapRemoteException() : e;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        LOG.warn("Error while deleting: " + filePath, e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>    return deletedFileCount == files.size();<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>  @Override<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  public void cleanup() {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    for (T lc : this.cleanersChain) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      try {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        lc.stop("Exiting");<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      } catch (Throwable t) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        LOG.warn("Stopping", t);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      }<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  /**<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   * @param enabled<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  public boolean setEnabled(final boolean enabled) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    return this.enabled.getAndSet(enabled);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  }<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>  public boolean getEnabled() {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    return this.enabled.get();<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">272</span>    return deleteFiles(filesToDelete) == files.size();<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>   * Delete the given files<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   * @param filesToDelete files to delete<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   * @return number of deleted files<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   */<a name="line.279"></a>
+<span class="sourceLineNo">280</span>  protected int deleteFiles(Iterable&lt;FileStatus&gt; filesToDelete) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    int deletedFileCount = 0;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    for (FileStatus file : filesToDelete) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      Path filePath = file.getPath();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      if (LOG.isDebugEnabled()) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        LOG.debug("Removing: " + filePath + " from archive");<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      try {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        boolean success = this.fs.delete(filePath, false);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        if (success) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>          deletedFileCount++;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        } else {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          LOG.warn("Attempted to delete:" + filePath<a name="line.292"></a>
+<span class="sourceLineNo">293</span>              + ", but couldn't. Run cleaner chain and attempt to delete on next pass.");<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      } catch (IOException e) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        e = e instanceof RemoteException ?<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                  ((RemoteException)e).unwrapRemoteException() : e;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        LOG.warn("Error while deleting: " + filePath, e);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    return deletedFileCount;<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 cleanup() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    for (T lc : this.cleanersChain) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      try {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        lc.stop("Exiting");<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      } catch (Throwable t) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        LOG.warn("Stopping", t);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      }<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    }<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>  /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>   * @param enabled<a name="line.316"></a>
+<span class="sourceLineNo">317</span>   */<a name="line.317"></a>
+<span class="sourceLineNo">318</span>  public boolean setEnabled(final boolean enabled) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    return this.enabled.getAndSet(enabled);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>  public boolean getEnabled() {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    return this.enabled.get();<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html
index bba66a8..d952755 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html
@@ -25,59 +25,370 @@
 <span class="sourceLineNo">017</span> */<a name="line.17"></a>
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.master.cleaner;<a name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import java.util.List;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import java.util.Map;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.conf.Configuration;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.fs.FileSystem;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.fs.Path;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.io.HFileLink;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.regionserver.StoreFileInfo;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>/**<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * This Chore, every time it runs, will clear the HFiles in the hfile archive<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * folder that are deletable for each HFile cleaner in the chain.<a name="line.32"></a>
-<span class="sourceLineNo">033</span> */<a name="line.33"></a>
-<span class="sourceLineNo">034</span>@InterfaceAudience.Private<a name="line.34"></a>
-<span class="sourceLineNo">035</span>public class HFileCleaner extends CleanerChore&lt;BaseHFileCleanerDelegate&gt; {<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  public static final String MASTER_HFILE_CLEANER_PLUGINS = "hbase.master.hfilecleaner.plugins";<a name="line.37"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.ArrayList;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.List;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Map;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.concurrent.BlockingQueue;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.commons.logging.Log;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.logging.LogFactory;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.conf.Configuration;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.fs.FileStatus;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.fs.FileSystem;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.fs.Path;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.HFileLink;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.regionserver.StoreFileInfo;<a name="line.37"></a>
 <span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public HFileCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,<a name="line.39"></a>
-<span class="sourceLineNo">040</span>      Path directory) {<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    this(period, stopper, conf, fs, directory, null);<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  }<a name="line.42"></a>
-<span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span>  /**<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   * @param period the period of time to sleep between each run<a name="line.45"></a>
-<span class="sourceLineNo">046</span>   * @param stopper the stopper<a name="line.46"></a>
-<span class="sourceLineNo">047</span>   * @param conf configuration to use<a name="line.47"></a>
-<span class="sourceLineNo">048</span>   * @param fs handle to the FS<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   * @param directory directory to be cleaned<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   * @param params params could be used in subclass of BaseHFileCleanerDelegate<a name="line.50"></a>
-<span class="sourceLineNo">051</span>   */<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  public HFileCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,<a name="line.52"></a>
-<span class="sourceLineNo">053</span>                      Path directory, Map&lt;String, Object&gt; params) {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    super("HFileCleaner", period, stopper, conf, fs,<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      directory, MASTER_HFILE_CLEANER_PLUGINS, params);<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  }<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  @Override<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  protected boolean validate(Path file) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    if (HFileLink.isBackReferencesDir(file) || HFileLink.isBackReferencesDir(file.getParent())) {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      return true;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    }<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    return StoreFileInfo.validateStoreFileName(file.getName());<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>   * Exposed for TESTING!<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  public List&lt;BaseHFileCleanerDelegate&gt; getDelegatesForTesting() {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    return this.cleanersChain;<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">039</span>import com.google.common.annotations.VisibleForTesting;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>/**<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * This Chore, every time it runs, will clear the HFiles in the hfile archive<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * folder that are deletable for each HFile cleaner in the chain.<a name="line.42"></a>
+<span class="sourceLineNo">043</span> */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>@InterfaceAudience.Private<a name="line.44"></a>
+<span class="sourceLineNo">045</span>public class HFileCleaner extends CleanerChore&lt;BaseHFileCleanerDelegate&gt; implements<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    ConfigurationObserver {<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>  public static final String MASTER_HFILE_CLEANER_PLUGINS = "hbase.master.hfilecleaner.plugins";<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  public HFileCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      Path directory) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    this(period, stopper, conf, fs, directory, null);<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>  // Configuration key for large/small throttle point<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public final static String HFILE_DELETE_THROTTLE_THRESHOLD =<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      "hbase.regionserver.thread.hfilecleaner.throttle";<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public final static int DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD = 64 * 1024 * 1024;// 64M<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  // Configuration key for large queue size<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public final static String LARGE_HFILE_DELETE_QUEUE_SIZE =<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      "hbase.regionserver.hfilecleaner.large.queue.size";<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public final static int DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE = 1048576;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  // Configuration key for small queue size<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public final static String SMALL_HFILE_DELETE_QUEUE_SIZE =<a name="line.66"></a>
+<span class="sourceLineNo">067</span>      "hbase.regionserver.hfilecleaner.small.queue.size";<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  public final static int DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE = 1048576;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private static final Log LOG = LogFactory.getLog(HFileCleaner.class);<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  BlockingQueue&lt;HFileDeleteTask&gt; largeFileQueue;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  BlockingQueue&lt;HFileDeleteTask&gt; smallFileQueue;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private int throttlePoint;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private int largeQueueSize;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private int smallQueueSize;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private List&lt;Thread&gt; threads = new ArrayList&lt;Thread&gt;();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private boolean running;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private long deletedLargeFiles = 0L;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  private long deletedSmallFiles = 0L;<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>   * @param period the period of time to sleep between each run<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * @param stopper the stopper<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * @param conf configuration to use<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * @param fs handle to the FS<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   * @param directory directory to be cleaned<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * @param params params could be used in subclass of BaseHFileCleanerDelegate<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public HFileCleaner(final int period, final Stoppable stopper, Configuration conf, FileSystem fs,<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                      Path directory, Map&lt;String, Object&gt; params) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    super("HFileCleaner", period, stopper, conf, fs,<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      directory, MASTER_HFILE_CLEANER_PLUGINS, params);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    throttlePoint =<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        conf.getInt(HFILE_DELETE_THROTTLE_THRESHOLD, DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    largeQueueSize =<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        conf.getInt(LARGE_HFILE_DELETE_QUEUE_SIZE, DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    smallQueueSize =<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        conf.getInt(SMALL_HFILE_DELETE_QUEUE_SIZE, DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    largeFileQueue = new LinkedBlockingQueue&lt;HFileCleaner.HFileDeleteTask&gt;(largeQueueSize);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    smallFileQueue = new LinkedBlockingQueue&lt;HFileCleaner.HFileDeleteTask&gt;(smallQueueSize);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    startHFileDeleteThreads();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  protected boolean validate(Path file) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    if (HFileLink.isBackReferencesDir(file) || HFileLink.isBackReferencesDir(file.getParent())) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      return true;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    return StoreFileInfo.validateStoreFileName(file.getName());<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  /**<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * Exposed for TESTING!<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  public List&lt;BaseHFileCleanerDelegate&gt; getDelegatesForTesting() {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    return this.cleanersChain;<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>  @Override<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public int deleteFiles(Iterable&lt;FileStatus&gt; filesToDelete) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    int deletedFiles = 0;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    List&lt;HFileDeleteTask&gt; tasks = new ArrayList&lt;HFileDeleteTask&gt;();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    // construct delete tasks and add into relative queue<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    for (FileStatus file : filesToDelete) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      HFileDeleteTask task = deleteFile(file);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      if (task != null) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        tasks.add(task);<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>    // wait for each submitted task to finish<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    for (HFileDeleteTask task : tasks) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      if (task.getResult()) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        deletedFiles++;<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>    return deletedFiles;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>  /**<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   * Construct an {@link HFileDeleteTask} for each file to delete and add into the correct queue<a name="line.142"></a>
+<span class="sourceLineNo">143</span>   * @param file the file to delete<a name="line.143"></a>
+<span class="sourceLineNo">144</span>   * @return HFileDeleteTask to track progress<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   */<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  private HFileDeleteTask deleteFile(FileStatus file) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    HFileDeleteTask task = new HFileDeleteTask(file);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    boolean enqueued = dispatch(task);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    return enqueued ? task : null;<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 boolean dispatch(HFileDeleteTask task) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    if (task.fileLength &gt;= this.throttlePoint) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      if (!this.largeFileQueue.offer(task)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        if (LOG.isTraceEnabled()) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>          LOG.trace("Large file deletion queue is full");<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return false;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    } else {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      if (!this.smallFileQueue.offer(task)) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        if (LOG.isTraceEnabled()) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>          LOG.trace("Small file deletion queue is full");<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        return false;<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>    return true;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void cleanup() {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    super.cleanup();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    stopHFileDeleteThreads();<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>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Start threads for hfile deletion<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  private void startHFileDeleteThreads() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    final String n = Thread.currentThread().getName();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    running = true;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // start thread for large file deletion<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Thread large = new Thread() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      @Override<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      public void run() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        consumerLoop(largeFileQueue);<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>    large.setDaemon(true);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    large.setName(n + "-HFileCleaner.large-" + System.currentTimeMillis());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    large.start();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    LOG.debug("Starting hfile cleaner for large files: " + large.getName());<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    threads.add(large);<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>    // start thread for small file deletion<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    Thread small = new Thread() {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      @Override<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      public void run() {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        consumerLoop(smallFileQueue);<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>    small.setDaemon(true);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    small.setName(n + "-HFileCleaner.small-" + System.currentTimeMillis());<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    small.start();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    LOG.debug("Starting hfile cleaner for small files: " + small.getName());<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    threads.add(small);<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>  protected void consumerLoop(BlockingQueue&lt;HFileDeleteTask&gt; queue) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    try {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      while (running) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        HFileDeleteTask task = null;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        try {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          task = queue.take();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        } catch (InterruptedException e) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          if (LOG.isDebugEnabled()) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>            LOG.debug("Interrupted while trying to take a task from queue", e);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          break;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        if (task != null) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>          if (LOG.isDebugEnabled()) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>            LOG.debug("Removing: " + task.filePath + " from archive");<a name="line.224"></a>
+<span class="sourceLineNo">225</span>          }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          boolean succeed;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          try {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>            succeed = this.fs.delete(task.filePath, false);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          } catch (IOException e) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>            LOG.warn("Failed to delete file " + task.filePath, e);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>            succeed = false;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>          }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>          task.setResult(succeed);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>          if (succeed) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>            countDeletedFiles(queue == largeFileQueue);<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>    } finally {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      if (LOG.isDebugEnabled()) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        LOG.debug("Exit thread: " + Thread.currentThread());<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><a name="line.245"></a>
+<span class="sourceLineNo">246</span>  // Currently only for testing purpose<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  private void countDeletedFiles(boolean isLarge) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    if (isLarge) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      if (deletedLargeFiles == Long.MAX_VALUE) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        LOG.info("Deleted more than Long.MAX_VALUE large files, reset counter to 0");<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        deletedLargeFiles = 0L;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      deletedLargeFiles++;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    } else {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      if (deletedSmallFiles == Long.MAX_VALUE) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        LOG.info("Deleted more than Long.MAX_VALUE small files, reset counter to 0");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        deletedSmallFiles = 0L;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      deletedSmallFiles++;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    }<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>  /**<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * Stop threads for hfile deletion<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  private void stopHFileDeleteThreads() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    running = false;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    if (LOG.isDebugEnabled()) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      LOG.debug("Stopping file delete threads");<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    for(Thread thread: threads){<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      thread.interrupt();<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>  static class HFileDeleteTask {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    private static final long MAX_WAIT = 60 * 1000L;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    private static final long WAIT_UNIT = 1000L;<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>    boolean done = false;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    boolean result;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    final Path filePath;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    final long fileLength;<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    public HFileDeleteTask(FileStatus file) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      this.filePath = file.getPath();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      this.fileLength = file.getLen();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>    public synchronized void setResult(boolean result) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      this.done = true;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      this.result = result;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      notify();<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>    public synchronized boolean getResult() {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      long waitTime = 0;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      try {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        while (!done) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>          wait(WAIT_UNIT);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>          waitTime += WAIT_UNIT;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          if (done) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>            return this.result;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>          if (waitTime &gt; MAX_WAIT) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>            LOG.warn("Wait more than " + MAX_WAIT + " ms for deleting " + this.filePath<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                + ", exit...");<a name="line.307"></a>
+<span class="sourceLineNo">308</span>            return false;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>          }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      } catch (InterruptedException e) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        LOG.warn("Interrupted while waiting for result of deleting " + filePath<a name="line.312"></a>
+<span class="sourceLineNo">313</span>            + ", will return false", e);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        return false;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      }<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      return this.result;<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><a name="line.319"></a>
+<span class="sourceLineNo">320</span>  @VisibleForTesting<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  public List&lt;Thread&gt; getCleanerThreads() {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    return threads;<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>  @VisibleForTesting<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  public long getNumOfDeletedLargeFiles() {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    return deletedLargeFiles;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>  }<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>  @VisibleForTesting<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  public long getNumOfDeletedSmallFiles() {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    return deletedSmallFiles;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>  }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>  @VisibleForTesting<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  public long getLargeQueueSize() {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    return largeQueueSize;<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>  @VisibleForTesting<a name="line.340"></a>
+<span class="sourceLineNo">341</span>  public long getSmallQueueSize() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return smallQueueSize;<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>  @VisibleForTesting<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public long getThrottlePoint() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return throttlePoint;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public void onConfigurationChange(Configuration conf) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    StringBuilder builder = new StringBuilder();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    builder.append("Updating configuration for HFileCleaner, previous throttle point: ")<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        .append(throttlePoint).append(", largeQueueSize: ").append(largeQueueSize)<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        .append(", smallQueueSize: ").append(smallQueueSize);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    stopHFileDeleteThreads();<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    this.throttlePoint =<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        conf.getInt(HFILE_DELETE_THROTTLE_THRESHOLD, DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD);<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    this.largeQueueSize =<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        conf.getInt(LARGE_HFILE_DELETE_QUEUE_SIZE, DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    this.smallQueueSize =<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        conf.getInt(SMALL_HFILE_DELETE_QUEUE_SIZE, DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    // record the left over tasks<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    List&lt;HFileDeleteTask&gt; leftOverTasks = new ArrayList&lt;&gt;();<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    for (HFileDeleteTask task : largeFileQueue) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      leftOverTasks.add(task);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    }<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    for (HFileDeleteTask task : smallFileQueue) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      leftOverTasks.add(task);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    largeFileQueue = new LinkedBlockingQueue&lt;HFileCleaner.HFileDeleteTask&gt;(largeQueueSize);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    smallFileQueue = new LinkedBlockingQueue&lt;HFileCleaner.HFileDeleteTask&gt;(smallQueueSize);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    threads.clear();<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    builder.append("; new throttle point: ").append(throttlePoint).append(", largeQueueSize: ")<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        .append(largeQueueSize).append(", smallQueueSize: ").append(smallQueueSize);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    LOG.debug(builder.toString());<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    startHFileDeleteThreads();<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    // re-dispatch the left over tasks<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    for (HFileDeleteTask task : leftOverTasks) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      dispatch(task);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
+<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
+<span class="sourceLineNo">383</span>}<a name="line.383"></a>
 
 
 


[20/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html b/devapidocs/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html
index 0924e75..d5041a4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/cleaner/CleanerChore.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":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":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -160,7 +160,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#enabled">enabled</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private org.apache.hadoop.fs.FileSystem</code></td>
+<td class="colFirst"><code>protected org.apache.hadoop.fs.FileSystem</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#fs">fs</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -255,16 +255,22 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 </td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#deleteFiles-java.lang.Iterable-">deleteFiles</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;org.apache.hadoop.fs.FileStatus&gt;&nbsp;filesToDelete)</code>
+<div class="block">Delete the given files</div>
+</td>
+</tr>
+<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/master/cleaner/CleanerChore.html#getEnabled--">getEnabled</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<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/master/cleaner/CleanerChore.html#initCleanerChain-java.lang.String-">initCleanerChain</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confKey)</code>
 <div class="block">Instantiate and initialize all the file cleaners set in the configuration</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="type parameter in CleanerChore">T</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#newFileCleaner-java.lang.String-org.apache.hadoop.conf.Configuration-">newFileCleaner</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;className,
               org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
@@ -272,15 +278,15 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
  LogCleanerDelegate.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#runCleaner--">runCleaner</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#setEnabled-boolean-">setEnabled</a></span>(boolean&nbsp;enabled)</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>protected abstract boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#validate-org.apache.hadoop.fs.Path-">validate</a></span>(org.apache.hadoop.fs.Path&nbsp;file)</code>
 <div class="block">Validate the file to see if it even belongs in the directory.</div>
@@ -330,7 +336,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>fs</h4>
-<pre>private final&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.49">fs</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.49">fs</a></pre>
 </li>
 </ul>
 <a name="oldFileDir">
@@ -566,13 +572,29 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 </dl>
 </li>
 </ul>
+<a name="deleteFiles-java.lang.Iterable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteFiles</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.280">deleteFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;org.apache.hadoop.fs.FileStatus&gt;&nbsp;filesToDelete)</pre>
+<div class="block">Delete the given files</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filesToDelete</code> - files to delete</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>number of deleted files</dd>
+</dl>
+</li>
+</ul>
 <a name="cleanup--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.297">cleanup</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.305">cleanup</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html#cleanup--">ScheduledChore</a></code></span></div>
 <div class="block">Override to run cleanup tasks when the Chore encounters an error and must stop running</div>
 <dl>
@@ -587,7 +609,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>setEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.310">setEnabled</a>(boolean&nbsp;enabled)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.318">setEnabled</a>(boolean&nbsp;enabled)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>enabled</code> - </dd>
@@ -600,7 +622,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.314">getEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#line.322">getEnabled</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html b/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html
index 98db666..8b5cb80 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.html" title="interface in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" target="_top">Frames</a></li>
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
@@ -119,13 +119,14 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></dd>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>, <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></dd>
 </dl>
 <hr>
 <br>
 <pre><a href="../../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.35">HFileCleaner</a>
-extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseHFileCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner">BaseHFileCleanerDelegate</a>&gt;</pre>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.45">HFileCleaner</a>
+extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseHFileCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner">BaseHFileCleanerDelegate</a>&gt;
+implements <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></pre>
 <div class="block">This Chore, every time it runs, will clear the HFiles in the hfile archive
  folder that are deletable for each HFile cleaner in the chain.</div>
 </li>
@@ -134,6 +135,25 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <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>(package private) static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
 <!-- =========== FIELD SUMMARY =========== -->
 <ul class="blockList">
 <li class="blockList"><a name="field.summary">
@@ -147,16 +167,80 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD">DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE">DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE">DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#deletedLargeFiles">deletedLargeFiles</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#deletedSmallFiles">deletedSmallFiles</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#HFILE_DELETE_THROTTLE_THRESHOLD">HFILE_DELETE_THROTTLE_THRESHOLD</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#LARGE_HFILE_DELETE_QUEUE_SIZE">LARGE_HFILE_DELETE_QUEUE_SIZE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#largeFileQueue">largeFileQueue</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#largeQueueSize">largeQueueSize</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#LOG">LOG</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#MASTER_HFILE_CLEANER_PLUGINS">MASTER_HFILE_CLEANER_PLUGINS</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#running">running</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#SMALL_HFILE_DELETE_QUEUE_SIZE">SMALL_HFILE_DELETE_QUEUE_SIZE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#smallFileQueue">smallFileQueue</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#smallQueueSize">smallQueueSize</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#threads">threads</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#throttlePoint">throttlePoint</a></span></code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.master.cleaner.CleanerChore">
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanersChain">cleanersChain</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#params">params</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanersChain">cleanersChain</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#params">params</a></code></li>
 </ul>
 </li>
 </ul>
@@ -202,12 +286,85 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <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/master/cleaner/HFileCleaner.html#cleanup--">cleanup</a></span>()</code>
+<div class="block">Override to run cleanup tasks when the Chore encounters an error and must stop running</div>
+</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/master/cleaner/HFileCleaner.html#consumerLoop-java.util.concurrent.BlockingQueue-">consumerLoop</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&gt;&nbsp;queue)</code>&nbsp;</td>
+</tr>
+<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/master/cleaner/HFileCleaner.html#countDeletedFiles-boolean-">countDeletedFiles</a></span>(boolean&nbsp;isLarge)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#deleteFile-org.apache.hadoop.fs.FileStatus-">deleteFile</a></span>(org.apache.hadoop.fs.FileStatus&nbsp;file)</code>
+<div class="block">Construct an <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><code>HFileCleaner.HFileDeleteTask</code></a> for each file to delete and add into the correct queue</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#deleteFiles-java.lang.Iterable-">deleteFiles</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;org.apache.hadoop.fs.FileStatus&gt;&nbsp;filesToDelete)</code>
+<div class="block">Delete the given files</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#dispatch-org.apache.hadoop.hbase.master.cleaner.HFileCleaner.HFileDeleteTask-">dispatch</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&nbsp;task)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getCleanerThreads--">getCleanerThreads</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseHFileCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner">BaseHFileCleanerDelegate</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getDelegatesForTesting--">getDelegatesForTesting</a></span>()</code>
 <div class="block">Exposed for TESTING!</div>
 </td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getLargeQueueSize--">getLargeQueueSize</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getNumOfDeletedLargeFiles--">getNumOfDeletedLargeFiles</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getNumOfDeletedSmallFiles--">getNumOfDeletedSmallFiles</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getSmallQueueSize--">getSmallQueueSize</a></span>()</code>&nbsp;</td>
+</tr>
+<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/master/cleaner/HFileCleaner.html#getThrottlePoint--">getThrottlePoint</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
+<div class="block">This method would be called by the <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
+ object when the <code>Configuration</code> object is reloaded from disk.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#startHFileDeleteThreads--">startHFileDeleteThreads</a></span>()</code>
+<div class="block">Start threads for hfile deletion</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#stopHFileDeleteThreads--">stopHFileDeleteThreads</a></span>()</code>
+<div class="block">Stop threads for hfile deletion</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#validate-org.apache.hadoop.fs.Path-">validate</a></span>(org.apache.hadoop.fs.Path&nbsp;file)</code>
 <div class="block">Validate the file to see if it even belongs in the directory.</div>
@@ -219,7 +376,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#checkAndDeleteDirectory-org.apache.hadoop.fs.Path-">checkAndDeleteDirectory</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#chore--">chore</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanup--">cleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#getEnabled--">getEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#runCleaner--">runCleaner</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#setEnabled-boolean-">setEnabled</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#checkAndDeleteDirectory-org.apache.hadoop.fs.Path-">checkAndDeleteDirectory</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#chore--">chore</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#getEnabled--">getEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#runCleaner--">runCleaner</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#setEnabled-boolean-">setEnabled</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.ScheduledChore">
@@ -252,16 +409,184 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <a name="MASTER_HFILE_CLEANER_PLUGINS">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>MASTER_HFILE_CLEANER_PLUGINS</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.37">MASTER_HFILE_CLEANER_PLUGINS</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.48">MASTER_HFILE_CLEANER_PLUGINS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.MASTER_HFILE_CLEANER_PLUGINS">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
+<a name="HFILE_DELETE_THROTTLE_THRESHOLD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HFILE_DELETE_THROTTLE_THRESHOLD</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.56">HFILE_DELETE_THROTTLE_THRESHOLD</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.HFILE_DELETE_THROTTLE_THRESHOLD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD</h4>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.58">DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.DEFAULT_HFILE_DELETE_THROTTLE_THRESHOLD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="LARGE_HFILE_DELETE_QUEUE_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LARGE_HFILE_DELETE_QUEUE_SIZE</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.61">LARGE_HFILE_DELETE_QUEUE_SIZE</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.LARGE_HFILE_DELETE_QUEUE_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE</h4>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.63">DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.DEFAULT_LARGE_HFILE_DELETE_QUEUE_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="SMALL_HFILE_DELETE_QUEUE_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SMALL_HFILE_DELETE_QUEUE_SIZE</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.66">SMALL_HFILE_DELETE_QUEUE_SIZE</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.SMALL_HFILE_DELETE_QUEUE_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE</h4>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.68">DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.cleaner.HFileCleaner.DEFAULT_SMALL_HFILE_DELETE_QUEUE_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="LOG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOG</h4>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.70">LOG</a></pre>
+</li>
+</ul>
+<a name="largeFileQueue">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>largeFileQueue</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.72">largeFileQueue</a></pre>
+</li>
+</ul>
+<a name="smallFileQueue">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>smallFileQueue</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.73">smallFileQueue</a></pre>
+</li>
+</ul>
+<a name="throttlePoint">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throttlePoint</h4>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.74">throttlePoint</a></pre>
+</li>
+</ul>
+<a name="largeQueueSize">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>largeQueueSize</h4>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.75">largeQueueSize</a></pre>
+</li>
+</ul>
+<a name="smallQueueSize">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>smallQueueSize</h4>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.76">smallQueueSize</a></pre>
+</li>
+</ul>
+<a name="threads">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>threads</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.77">threads</a></pre>
+</li>
+</ul>
+<a name="running">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>running</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.78">running</a></pre>
+</li>
+</ul>
+<a name="deletedLargeFiles">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deletedLargeFiles</h4>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.80">deletedLargeFiles</a></pre>
+</li>
+</ul>
+<a name="deletedSmallFiles">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>deletedSmallFiles</h4>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.81">deletedSmallFiles</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -276,7 +601,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>HFileCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.39">HFileCleaner</a>(int&nbsp;period,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.50">HFileCleaner</a>(int&nbsp;period,
                     <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                     org.apache.hadoop.conf.Configuration&nbsp;conf,
                     org.apache.hadoop.fs.FileSystem&nbsp;fs,
@@ -289,7 +614,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HFileCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.52">HFileCleaner</a>(int&nbsp;period,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.91">HFileCleaner</a>(int&nbsp;period,
                     <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                     org.apache.hadoop.conf.Configuration&nbsp;conf,
                     org.apache.hadoop.fs.FileSystem&nbsp;fs,
@@ -320,7 +645,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <ul class="blockList">
 <li class="blockList">
 <h4>validate</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.59">validate</a>(org.apache.hadoop.fs.Path&nbsp;file)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.107">validate</a>(org.apache.hadoop.fs.Path&nbsp;file)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#validate-org.apache.hadoop.fs.Path-">CleanerChore</a></code></span></div>
 <div class="block">Validate the file to see if it even belongs in the directory. If it is valid, then the file
  will go through the cleaner delegates, but otherwise the file is just deleted.</div>
@@ -337,13 +662,180 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <a name="getDelegatesForTesting--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getDelegatesForTesting</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseHFileCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner">BaseHFileCleanerDelegate</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.69">getDelegatesForTesting</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseHFileCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner">BaseHFileCleanerDelegate</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.117">getDelegatesForTesting</a>()</pre>
 <div class="block">Exposed for TESTING!</div>
 </li>
 </ul>
+<a name="deleteFiles-java.lang.Iterable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteFiles</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.122">deleteFiles</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;org.apache.hadoop.fs.FileStatus&gt;&nbsp;filesToDelete)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#deleteFiles-java.lang.Iterable-">CleanerChore</a></code></span></div>
+<div class="block">Delete the given files</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#deleteFiles-java.lang.Iterable-">deleteFiles</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseHFileCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner">BaseHFileCleanerDelegate</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filesToDelete</code> - files to delete</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>number of deleted files</dd>
+</dl>
+</li>
+</ul>
+<a name="deleteFile-org.apache.hadoop.fs.FileStatus-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteFile</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.146">deleteFile</a>(org.apache.hadoop.fs.FileStatus&nbsp;file)</pre>
+<div class="block">Construct an <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><code>HFileCleaner.HFileDeleteTask</code></a> for each file to delete and add into the correct queue</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>file</code> - the file to delete</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>HFileDeleteTask to track progress</dd>
+</dl>
+</li>
+</ul>
+<a name="dispatch-org.apache.hadoop.hbase.master.cleaner.HFileCleaner.HFileDeleteTask-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dispatch</h4>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.152">dispatch</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&nbsp;task)</pre>
+</li>
+</ul>
+<a name="cleanup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cleanup</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.172">cleanup</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html#cleanup--">ScheduledChore</a></code></span></div>
+<div class="block">Override to run cleanup tasks when the Chore encounters an error and must stop running</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanup--">cleanup</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseHFileCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner">BaseHFileCleanerDelegate</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="startHFileDeleteThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>startHFileDeleteThreads</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.180">startHFileDeleteThreads</a>()</pre>
+<div class="block">Start threads for hfile deletion</div>
+</li>
+</ul>
+<a name="consumerLoop-java.util.concurrent.BlockingQueue-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>consumerLoop</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.210">consumerLoop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&gt;&nbsp;queue)</pre>
+</li>
+</ul>
+<a name="countDeletedFiles-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>countDeletedFiles</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.247">countDeletedFiles</a>(boolean&nbsp;isLarge)</pre>
+</li>
+</ul>
+<a name="stopHFileDeleteThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stopHFileDeleteThreads</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.266">stopHFileDeleteThreads</a>()</pre>
+<div class="block">Stop threads for hfile deletion</div>
+</li>
+</ul>
+<a name="getCleanerThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCleanerThreads</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.321">getCleanerThreads</a>()</pre>
+</li>
+</ul>
+<a name="getNumOfDeletedLargeFiles--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumOfDeletedLargeFiles</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.326">getNumOfDeletedLargeFiles</a>()</pre>
+</li>
+</ul>
+<a name="getNumOfDeletedSmallFiles--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumOfDeletedSmallFiles</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.331">getNumOfDeletedSmallFiles</a>()</pre>
+</li>
+</ul>
+<a name="getLargeQueueSize--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLargeQueueSize</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.336">getLargeQueueSize</a>()</pre>
+</li>
+</ul>
+<a name="getSmallQueueSize--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSmallQueueSize</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.341">getSmallQueueSize</a>()</pre>
+</li>
+</ul>
+<a name="getThrottlePoint--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getThrottlePoint</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.346">getThrottlePoint</a>()</pre>
+</li>
+</ul>
+<a name="onConfigurationChange-org.apache.hadoop.conf.Configuration-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onConfigurationChange</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#line.351">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">ConfigurationObserver</a></code></span></div>
+<div class="block">This method would be called by the <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
+ object when the <code>Configuration</code> object is reloaded from disk.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
@@ -373,7 +865,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.html" title="interface in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" target="_top">Frames</a></li>
@@ -397,7 +889,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
 <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html b/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html
index 2630e24..bf04c7e 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -360,7 +360,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/BaseHF
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html b/devapidocs/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html
index aeaeb61..650ccdc 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/cleaner/LogCleaner.html
@@ -160,7 +160,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanersChain">cleanersChain</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#params">params</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanersChain">cleanersChain</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#params">params</a></code></li>
 </ul>
 </li>
 </ul>
@@ -209,7 +209,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/Cleane
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#checkAndDeleteDirectory-org.apache.hadoop.fs.Path-">checkAndDeleteDirectory</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#chore--">chore</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanup--">cleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#getEnabled--">getEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#runCleaner--">runCleaner</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#setEnabled-boolean-">setEnabled</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#checkAndDeleteDirectory-org.apache.hadoop.fs.Path-">checkAndDeleteDirectory</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#chore--">chore</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#cleanup--">cleanup</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#deleteFiles-java.lang.Iterable-">deleteFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#getEnabled--">getEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#runCleaner--">runCleaner</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html#setEnabled-boolean-">setEnabled</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.ScheduledChore">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-frame.html b/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-frame.html
index ffd3938..5eead2d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-frame.html
@@ -22,6 +22,7 @@
 <li><a href="BaseLogCleanerDelegate.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">BaseLogCleanerDelegate</a></li>
 <li><a href="CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">CleanerChore</a></li>
 <li><a href="HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">HFileCleaner</a></li>
+<li><a href="HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">HFileCleaner.HFileDeleteTask</a></li>
 <li><a href="HFileLinkCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">HFileLinkCleaner</a></li>
 <li><a href="LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">LogCleaner</a></li>
 <li><a href="ReplicationMetaCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner" target="classFrame">ReplicationMetaCleaner</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-summary.html b/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-summary.html
index 3593951..8842fd4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-summary.html
@@ -133,42 +133,46 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileLinkCleaner</a></td>
 <td class="colLast">
 <div class="block">HFileLink cleaner that determines if a hfile should be deleted.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a></td>
 <td class="colLast">
 <div class="block">This Chore, every time it runs, will attempt to delete the WALs in the old logs folder.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/ReplicationMetaCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">ReplicationMetaCleaner</a></td>
 <td class="colLast">
 <div class="block">This chore is to clean up the useless data in hbase:meta which is used by serial replication.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">ReplicationZKNodeCleaner</a></td>
 <td class="colLast">
 <div class="block">Used to clean the replication queues belonging to the peer which does not exist.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner">ReplicationZKNodeCleanerChore</a></td>
 <td class="colLast">
 <div class="block">Chore that will clean the replication queues belonging to the peer which does not exist.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TimeToLiveHFileCleaner</a></td>
 <td class="colLast">
 <div class="block">HFile cleaner that uses the timestamp of the hfile to determine if it should be deleted.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TimeToLiveLogCleaner</a></td>
 <td class="colLast">
 <div class="block">Log cleaner that uses the timestamp of the wal to determine if it should

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-tree.html
index 2c8241a..9d500a6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-tree.html
@@ -100,6 +100,7 @@
 </li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.HFileDeleteTask.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">HFileCleaner.HFileDeleteTask</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationStateZKBase.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationStateZKBase</span></a>
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.ReplicationQueueDeletor.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">ReplicationZKNodeCleaner.ReplicationQueueDeletor</span></a></li>
@@ -110,7 +111,7 @@
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/CleanerChore.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">CleanerChore</span></a>&lt;T&gt;
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">HFileCleaner</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">HFileCleaner</span></a> (implements org.apache.hadoop.hbase.conf.<a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">LogCleaner</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-use.html b/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-use.html
index 74085c5..dd6e738 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/cleaner/package-use.html
@@ -274,11 +274,14 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/class-use/HFileCleaner.HFileDeleteTask.html#org.apache.hadoop.hbase.master.cleaner">HFileCleaner.HFileDeleteTask</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/class-use/ReplicationZKNodeCleaner.html#org.apache.hadoop.hbase.master.cleaner">ReplicationZKNodeCleaner</a>
 <div class="block">Used to clean the replication queues belonging to the peer which does not exist.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/class-use/ReplicationZKNodeCleaner.ReplicationQueueDeletor.html#org.apache.hadoop.hbase.master.cleaner">ReplicationZKNodeCleaner.ReplicationQueueDeletor</a>&nbsp;</td>
 </tr>
 </tbody>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 d3cc432..a3aadda 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -174,9 +174,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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/DisableTableProcedure.MarkRegionOfflineOpResult.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">DisableTableProcedure.MarkRegionOfflineOpResult</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/DisableTableProcedure.MarkRegionOfflineOpResult.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">DisableTableProcedure.MarkRegionOfflineOpResult</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/993199fc/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 91f8d50..07bf5b5 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -422,15 +422,15 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.Modify.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.Modify</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/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/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/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/HConstants.Modify.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.Modify</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/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/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/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/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
 </ul>
 </li>

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

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


[08/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
index c885b3a..ac9ce7d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
@@ -1303,1942 +1303,1943 @@
 <span class="sourceLineNo">1295</span>      throw new RegionServerStoppedException("File system not available");<a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>    }<a name="line.1296"></a>
 <span class="sourceLineNo">1297</span>    if (!regionServer.isOnline()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      throw new ServerNotRunningYetException("Server is not running yet");<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    }<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>  /**<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   * @return list of blocking services and their security info classes that this server supports<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   */<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  protected List&lt;BlockingServiceAndInterface&gt; getServices() {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>    List&lt;BlockingServiceAndInterface&gt; bssi = new ArrayList&lt;&gt;(2);<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      ClientService.newReflectiveBlockingService(this),<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      ClientService.BlockingInterface.class));<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      AdminService.newReflectiveBlockingService(this),<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      AdminService.BlockingInterface.class));<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    return bssi;<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span><a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>  public InetSocketAddress getSocketAddress() {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    return isa;<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  }<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span><a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  @Override<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  public int getPriority(RequestHeader header, Message param, User user) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>    return priority.getPriority(header, param, user);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  }<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  @Override<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>  public long getDeadline(RequestHeader header, Message param) {<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>    return priority.getDeadline(header, param);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>  }<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  /*<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>   * Check if an OOME and, if so, abort immediately to avoid creating more objects.<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>   *<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>   * @param e<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>   *<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>   * @return True if we OOME'd and are aborting.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>   */<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  @Override<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>  public boolean checkOOME(final Throwable e) {<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>    return exitIfOOME(e);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  public static boolean exitIfOOME(final Throwable e ){<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>    boolean stop = false;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    try {<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (e instanceof OutOfMemoryError<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>          || (e.getCause() != null &amp;&amp; e.getCause() instanceof OutOfMemoryError)<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>          || (e.getMessage() != null &amp;&amp; e.getMessage().contains(<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>              "java.lang.OutOfMemoryError"))) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>        stop = true;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>        LOG.fatal("Run out of memory; " + RSRpcServices.class.getSimpleName()<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>          + " will abort itself immediately", e);<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    } finally {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      if (stop) {<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        Runtime.getRuntime().halt(1);<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>    }<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>    return stop;<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>  }<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span><a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>  /**<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>   * Close a region on the region server.<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>   *<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>   * @param controller the RPC controller<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>   * @param request the request<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>   * @throws ServiceException<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>   */<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  @Override<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public CloseRegionResponse closeRegion(final RpcController controller,<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      final CloseRegionRequest request) throws ServiceException {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>    final ServerName sn = (request.hasDestinationServer() ?<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>      ProtobufUtil.toServerName(request.getDestinationServer()) : null);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span><a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    try {<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>      checkOpen();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      if (request.hasServerStartCode()) {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>        // check that we are the same server that this RPC is intended for.<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>        long serverStartCode = request.getServerStartCode();<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>        if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>          throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>              "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>              + regionServer.serverName));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        }<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>      }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>      final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion());<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span><a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>      requestCount.increment();<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>      if (sn == null) {<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        LOG.info("Close " + encodedRegionName + " without moving");<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      } else {<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>        LOG.info("Close " + encodedRegionName + ", moving to " + sn);<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      boolean closed = regionServer.closeRegion(encodedRegionName, false, sn);<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>      CloseRegionResponse.Builder builder = CloseRegionResponse.newBuilder().setClosed(closed);<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>      return builder.build();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    } catch (IOException ie) {<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>      throw new ServiceException(ie);<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    }<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  }<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span><a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>  @Override<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public CloseRegionForSplitOrMergeResponse closeRegionForSplitOrMerge(<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      final RpcController controller,<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      final CloseRegionForSplitOrMergeRequest request) throws ServiceException {<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    try {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      checkOpen();<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span><a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      List&lt;String&gt; encodedRegionNameList = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      for(int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion(i));<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>        // Can be null if we're calling close on a region that's not online<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>        final Region targetRegion = regionServer.getFromOnlineRegions(encodedRegionName);<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>        if ((targetRegion != null) &amp;&amp; (targetRegion.getCoprocessorHost() != null)) {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>          targetRegion.getCoprocessorHost().preClose(false);<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>          encodedRegionNameList.add(encodedRegionName);<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      requestCount.increment();<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>      LOG.info("Close and offline " + encodedRegionNameList + " regions.");<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>      boolean closed = regionServer.closeAndOfflineRegionForSplitOrMerge(encodedRegionNameList);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      CloseRegionForSplitOrMergeResponse.Builder builder =<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>          CloseRegionForSplitOrMergeResponse.newBuilder().setClosed(closed);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      return builder.build();<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    } catch (IOException ie) {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>      throw new ServiceException(ie);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  /**<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>   * Compact a region on the region server.<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>   *<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>   * @param controller the RPC controller<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>   * @param request the request<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>   * @throws ServiceException<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>   */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>  @Override<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>  public CompactRegionResponse compactRegion(final RpcController controller,<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>      final CompactRegionRequest request) throws ServiceException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    try {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      checkOpen();<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      requestCount.increment();<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>      Region region = getRegion(request.getRegion());<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      region.startRegionOperation(Operation.COMPACT_REGION);<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>      LOG.info("Compacting " + region.getRegionInfo().getRegionNameAsString());<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>      boolean major = false;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>      byte [] family = null;<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>      Store store = null;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      if (request.hasFamily()) {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>        family = request.getFamily().toByteArray();<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>        store = region.getStore(family);<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        if (store == null) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>          throw new ServiceException(new DoNotRetryIOException("column family " +<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>              Bytes.toString(family) + " does not exist in region " +<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>              region.getRegionInfo().getRegionNameAsString()));<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>        }<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>      }<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      if (request.hasMajor()) {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>        major = request.getMajor();<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      }<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      if (major) {<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>        if (family != null) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>          store.triggerMajorCompaction();<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>        } else {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>          region.triggerMajorCompaction();<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>      }<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span><a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      String familyLogMsg = (family != null)?" for column family: " + Bytes.toString(family):"";<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      if (LOG.isTraceEnabled()) {<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>        LOG.trace("User-triggered compaction requested for region "<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>          + region.getRegionInfo().getRegionNameAsString() + familyLogMsg);<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>      }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      String log = "User-triggered " + (major ? "major " : "") + "compaction" + familyLogMsg;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>      if(family != null) {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>        regionServer.compactSplitThread.requestCompaction(region, store, log,<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      } else {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        regionServer.compactSplitThread.requestCompaction(region, log,<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>      }<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      return CompactRegionResponse.newBuilder().build();<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    } catch (IOException ie) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      throw new ServiceException(ie);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  }<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Flush a region on the region server.<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   *<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   * @param controller the RPC controller<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * @param request the request<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * @throws ServiceException<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>  @Override<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>  public FlushRegionResponse flushRegion(final RpcController controller,<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>      final FlushRegionRequest request) throws ServiceException {<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    try {<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>      checkOpen();<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>      requestCount.increment();<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>      Region region = getRegion(request.getRegion());<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>      LOG.info("Flushing " + region.getRegionInfo().getRegionNameAsString());<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      boolean shouldFlush = true;<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      if (request.hasIfOlderThanTs()) {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>        shouldFlush = region.getEarliestFlushTimeForAllStores() &lt; request.getIfOlderThanTs();<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      }<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      FlushRegionResponse.Builder builder = FlushRegionResponse.newBuilder();<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      if (shouldFlush) {<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        boolean writeFlushWalMarker =  request.hasWriteFlushWalMarker() ?<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>            request.getWriteFlushWalMarker() : false;<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>        // Go behind the curtain so we can manage writing of the flush WAL marker<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>        HRegion.FlushResultImpl flushResult = (HRegion.FlushResultImpl)<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>            ((HRegion)region).flushcache(true, writeFlushWalMarker);<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        boolean compactionNeeded = flushResult.isCompactionNeeded();<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>        if (compactionNeeded) {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>          regionServer.compactSplitThread.requestSystemCompaction(region,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>            "Compaction through user triggered flush");<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>        }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>        builder.setFlushed(flushResult.isFlushSucceeded());<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>        builder.setWroteFlushWalMarker(flushResult.wroteFlushWalMarker);<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      }<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      builder.setLastFlushTime(region.getEarliestFlushTimeForAllStores());<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      return builder.build();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>    } catch (DroppedSnapshotException ex) {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Cache flush can fail in a few places. If it fails in a critical<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // section, we get a DroppedSnapshotException and a replay of wal<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      // is required. Currently the only way to do this is a restart of<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>      // the server.<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      throw new ServiceException(ex);<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>    } catch (IOException ie) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      throw new ServiceException(ie);<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>    }<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span><a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>  @Override<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  public GetOnlineRegionResponse getOnlineRegion(final RpcController controller,<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      final GetOnlineRegionRequest request) throws ServiceException {<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    try {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      checkOpen();<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      requestCount.increment();<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      Map&lt;String, Region&gt; onlineRegions = regionServer.onlineRegions;<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      List&lt;HRegionInfo&gt; list = new ArrayList&lt;&gt;(onlineRegions.size());<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      for (Region region: onlineRegions.values()) {<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>        list.add(region.getRegionInfo());<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>      }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      Collections.sort(list);<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      return ResponseConverter.buildGetOnlineRegionResponse(list);<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } catch (IOException ie) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new ServiceException(ie);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>  }<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span><a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>  @Override<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  public GetRegionInfoResponse getRegionInfo(final RpcController controller,<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final GetRegionInfoRequest request) throws ServiceException {<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>    try {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      checkOpen();<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      requestCount.increment();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      Region region = getRegion(request.getRegion());<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      HRegionInfo info = region.getRegionInfo();<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      builder.setRegionInfo(HRegionInfo.convert(info));<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      if (request.hasCompactionState() &amp;&amp; request.getCompactionState()) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>        builder.setCompactionState(region.getCompactionState());<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      builder.setIsRecovering(region.isRecovering());<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      return builder.build();<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    } catch (IOException ie) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      throw new ServiceException(ie);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>  }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span><a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  @Override<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  public GetRegionLoadResponse getRegionLoad(RpcController controller,<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      GetRegionLoadRequest request) throws ServiceException {<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span><a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    List&lt;Region&gt; regions;<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    if (request.hasTableName()) {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>      regions = regionServer.getOnlineRegions(tableName);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>    } else {<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>      regions = regionServer.getOnlineRegions();<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    List&lt;RegionLoad&gt; rLoads = new ArrayList&lt;&gt;(regions.size());<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>    RegionLoad.Builder regionLoadBuilder = ClusterStatusProtos.RegionLoad.newBuilder();<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    RegionSpecifier.Builder regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span><a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    try {<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>      for (Region region : regions) {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>        rLoads.add(regionServer.createRegionLoad(region, regionLoadBuilder, regionSpecifier));<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      }<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>    } catch (IOException e) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>      throw new ServiceException(e);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>    }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>    GetRegionLoadResponse.Builder builder = GetRegionLoadResponse.newBuilder();<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>    builder.addAllRegionLoads(rLoads);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>    return builder.build();<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>  }<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span><a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>  /**<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>   * Get some information of the region server.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>   *<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>   * @param controller the RPC controller<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>   * @param request the request<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>   * @throws ServiceException<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>   */<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>  @Override<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>  public GetServerInfoResponse getServerInfo(final RpcController controller,<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      final GetServerInfoRequest request) throws ServiceException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    try {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      checkOpen();<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    } catch (IOException ie) {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>      throw new ServiceException(ie);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    requestCount.increment();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>    int infoPort = regionServer.infoServer != null ? regionServer.infoServer.getPort() : -1;<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>    return ResponseConverter.buildGetServerInfoResponse(regionServer.serverName, infoPort);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  }<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span><a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>  @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>  public GetStoreFileResponse getStoreFile(final RpcController controller,<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      final GetStoreFileRequest request) throws ServiceException {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    try {<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      checkOpen();<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      Region region = getRegion(request.getRegion());<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>      requestCount.increment();<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>      Set&lt;byte[]&gt; columnFamilies;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      if (request.getFamilyCount() == 0) {<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        columnFamilies = region.getTableDesc().getFamiliesKeys();<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>      } else {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>        columnFamilies = new TreeSet&lt;&gt;(Bytes.BYTES_RAWCOMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        for (ByteString cf: request.getFamilyList()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>          columnFamilies.add(cf.toByteArray());<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        }<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>      }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      int nCF = columnFamilies.size();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>      List&lt;String&gt;  fileList = region.getStoreFileList(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>        columnFamilies.toArray(new byte[nCF][]));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      GetStoreFileResponse.Builder builder = GetStoreFileResponse.newBuilder();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      builder.addAllStoreFile(fileList);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      return builder.build();<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    } catch (IOException ie) {<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      throw new ServiceException(ie);<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>    }<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  }<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span><a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>  /**<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>   * Open asynchronously a region or a set of regions on the region server.<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>   *<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>   * The opening is coordinated by ZooKeeper, and this method requires the znode to be created<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>   *  before being called. As a consequence, this method should be called only from the master.<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>   * &lt;p&gt;<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>   * Different manages states for the region are:<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>   * &lt;/p&gt;&lt;ul&gt;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>   *  &lt;li&gt;region not opened: the region opening will start asynchronously.&lt;/li&gt;<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>   *  &lt;li&gt;a close is already in progress: this is considered as an error.&lt;/li&gt;<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>   *  &lt;li&gt;an open is already in progress: this new open request will be ignored. This is important<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>   *  because the Master can do multiple requests if it crashes.&lt;/li&gt;<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>   *  &lt;li&gt;the region is already opened:  this new open request will be ignored.&lt;/li&gt;<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>   *  &lt;/ul&gt;<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * &lt;p&gt;<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * Bulk assign: If there are more than 1 region to open, it will be considered as a bulk assign.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   * For a single region opening, errors are sent through a ServiceException. For bulk assign,<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>   * errors are put in the response as FAILED_OPENING.<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>   * &lt;/p&gt;<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>   * @param controller the RPC controller<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>   * @param request the request<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>   * @throws ServiceException<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>   */<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>  @Override<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  public OpenRegionResponse openRegion(final RpcController controller,<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>      final OpenRegionRequest request) throws ServiceException {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    requestCount.increment();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    if (request.hasServerStartCode()) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>      // check that we are the same server that this RPC is intended for.<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>      long serverStartCode = request.getServerStartCode();<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>      if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>            "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>            + regionServer.serverName));<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    }<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    OpenRegionResponse.Builder builder = OpenRegionResponse.newBuilder();<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    final int regionCount = request.getOpenInfoCount();<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    final Map&lt;TableName, HTableDescriptor&gt; htds = new HashMap&lt;&gt;(regionCount);<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>    final boolean isBulkAssign = regionCount &gt; 1;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    try {<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      checkOpen();<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    } catch (IOException ie) {<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      TableName tableName = null;<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>      if (regionCount == 1) {<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>        RegionInfo ri = request.getOpenInfo(0).getRegion();<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>        if (ri != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>          tableName = ProtobufUtil.toTableName(ri.getTableName());<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        }<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (!TableName.META_TABLE_NAME.equals(tableName)) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        throw new ServiceException(ie);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      // We are assigning meta, wait a little for regionserver to finish initialization.<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>      int timeout = regionServer.conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT) &gt;&gt; 2; // Quarter of RPC timeout<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      long endTime = System.currentTimeMillis() + timeout;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      synchronized (regionServer.online) {<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>        try {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>          while (System.currentTimeMillis() &lt;= endTime<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              &amp;&amp; !regionServer.isStopped() &amp;&amp; !regionServer.isOnline()) {<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            regionServer.online.wait(regionServer.msgInterval);<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>          }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>          checkOpen();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>        } catch (InterruptedException t) {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          Thread.currentThread().interrupt();<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>          throw new ServiceException(t);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>        } catch (IOException e) {<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>          throw new ServiceException(e);<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        }<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>      }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    }<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span><a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    long masterSystemTime = request.hasMasterSystemTime() ? request.getMasterSystemTime() : -1;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span><a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>    for (RegionOpenInfo regionOpenInfo : request.getOpenInfoList()) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      final HRegionInfo region = HRegionInfo.convert(regionOpenInfo.getRegion());<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>      HTableDescriptor htd;<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      try {<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        String encodedName = region.getEncodedName();<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>        byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>        final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        if (onlineRegion != null) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          // The region is already online. This should not happen any more.<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>          String error = "Received OPEN for the region:"<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>            + region.getRegionNameAsString() + ", which is already online";<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>          regionServer.abort(error);<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          throw new IOException(error);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>        }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>        LOG.info("Open " + region.getRegionNameAsString());<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span><a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>        final Boolean previous = regionServer.regionsInTransitionInRS.putIfAbsent(<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>          encodedNameBytes, Boolean.TRUE);<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (Boolean.FALSE.equals(previous)) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          if (regionServer.getFromOnlineRegions(encodedName) != null) {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>            // There is a close in progress. This should not happen any more.<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>            String error = "Received OPEN for the region:"<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>              + region.getRegionNameAsString() + ", which we are already trying to CLOSE";<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>            regionServer.abort(error);<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>            throw new IOException(error);<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          }<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>          regionServer.regionsInTransitionInRS.put(encodedNameBytes, Boolean.TRUE);<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        }<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span><a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        if (Boolean.TRUE.equals(previous)) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>          // An open is in progress. This is supported, but let's log this.<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>          LOG.info("Receiving OPEN for the region:" +<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            region.getRegionNameAsString() + ", which we are already trying to OPEN"<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>              + " - ignoring this new request for this region.");<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>        }<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span><a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        // We are opening this region. If it moves back and forth for whatever reason, we don't<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        // want to keep returning the stale moved record while we are opening/if we close again.<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        regionServer.removeFromMovedRegions(region.getEncodedName());<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>        if (previous == null || !previous.booleanValue()) {<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          // check if the region to be opened is marked in recovering state in ZK<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>          if (ZKSplitLog.isRegionMarkedRecoveringInZK(regionServer.getZooKeeper(),<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>              region.getEncodedName())) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            // Check if current region open is for distributedLogReplay. This check is to support<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>            // rolling restart/upgrade where we want to Master/RS see same configuration<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>            if (!regionOpenInfo.hasOpenForDistributedLogReplay()<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>                  || regionOpenInfo.getOpenForDistributedLogReplay()) {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>              regionServer.recoveringRegions.put(region.getEncodedName(), null);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>            } else {<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>              // Remove stale recovery region from ZK when we open region not for recovering which<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>              // could happen when turn distributedLogReplay off from on.<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              List&lt;String&gt; tmpRegions = new ArrayList&lt;&gt;();<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>              tmpRegions.add(region.getEncodedName());<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>              ZKSplitLog.deleteRecoveringRegionZNodes(regionServer.getZooKeeper(),<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>                tmpRegions);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>            }<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          }<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>          htd = htds.get(region.getTable());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>          if (htd == null) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>            htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            htds.put(region.getTable(), htd);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>          }<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>          if (htd == null) {<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>            throw new IOException("Missing table descriptor for " + region.getEncodedName());<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>          }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>          // If there is no action in progress, we can submit a specific handler.<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          // Need to pass the expected version in the constructor.<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>          if (region.isMetaRegion()) {<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>            regionServer.service.submit(new OpenMetaHandler(<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>              regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>          } else {<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>            if (regionOpenInfo.getFavoredNodesCount() &gt; 0) {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>              regionServer.updateRegionFavoredNodesMapping(region.getEncodedName(),<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>                  regionOpenInfo.getFavoredNodesList());<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>            }<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>            if (htd.getPriority() &gt;= HConstants.ADMIN_QOS || region.getTable().isSystemTable()) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>              regionServer.service.submit(new OpenPriorityRegionHandler(<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>            } else {<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>              regionServer.service.submit(new OpenRegionHandler(<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>            }<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          }<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span><a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>        builder.addOpeningState(RegionOpeningState.OPENED);<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>      } catch (KeeperException zooKeeperEx) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>        LOG.error("Can't retrieve recovering state from zookeeper", zooKeeperEx);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>        throw new ServiceException(zooKeeperEx);<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>      } catch (IOException ie) {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>        LOG.warn("Failed opening region " + region.getRegionNameAsString(), ie);<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>        if (isBulkAssign) {<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>          builder.addOpeningState(RegionOpeningState.FAILED_OPENING);<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>        } else {<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>          throw new ServiceException(ie);<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>        }<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>      }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    return builder.build();<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  }<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span><a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>  /**<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   *  Wamrmup a region on this server.<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>   *<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>   * This method should only be called by Master. It synchrnously opens the region and<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>   * closes the region bringing the most important pages in cache.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>   * &lt;p&gt;<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>   *<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>   * @param controller the RPC controller<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>   * @param request the request<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>   * @throws ServiceException<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>   */<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>  @Override<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>  public WarmupRegionResponse warmupRegion(final RpcController controller,<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>      final WarmupRegionRequest request) throws ServiceException {<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    RegionInfo regionInfo = request.getRegionInfo();<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>    final HRegionInfo region = HRegionInfo.convert(regionInfo);<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>    HTableDescriptor htd;<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    WarmupRegionResponse response = WarmupRegionResponse.getDefaultInstance();<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span><a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>    try {<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>      checkOpen();<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>      String encodedName = region.getEncodedName();<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>      byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>      final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span><a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>      if (onlineRegion != null) {<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        LOG.info("Region already online. Skipping warming up " + region);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>        return response;<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>      }<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span><a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      if (LOG.isDebugEnabled()) {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        LOG.debug("Warming up Region " + region.getRegionNameAsString());<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span><a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>      htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>      if (regionServer.getRegionsInTransitionInRS().containsKey(encodedNameBytes)) {<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>        LOG.info("Region is in transition. Skipping warmup " + region);<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>        return response;<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span><a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>      HRegion.warmupHRegion(region, htd, regionServer.getWAL(region),<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>          regionServer.getConfiguration(), regionServer, null);<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span><a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    } catch (IOException ie) {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>      LOG.error("Failed warming up region " + region.getRegionNameAsString(), ie);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>      throw new ServiceException(ie);<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>    }<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span><a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    return response;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>  }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>  /**<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>   * Replay the given changes when distributedLogReplay WAL edits from a failed RS. The guarantee is<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>   * that the given mutations will be durable on the receiving RS if this method returns without any<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>   * exception.<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>   * @param controller the RPC controller<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>   * @param request the request<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>   * @throws ServiceException<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>   */<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  @Override<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  @QosPriority(priority = HConstants.REPLAY_QOS)<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  public ReplicateWALEntryResponse replay(final RpcController controller,<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    CellScanner cells = ((HBaseRpcController) controller).cellScanner();<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    try {<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>      checkOpen();<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>      List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      if (entries == null || entries.isEmpty()) {<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>        // empty input<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>      }<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>      ByteString regionName = entries.get(0).getKey().getEncodedRegionName();<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>      Region region = regionServer.getRegionByEncodedName(regionName.toStringUtf8());<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>      RegionCoprocessorHost coprocessorHost =<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>          ServerRegionReplicaUtil.isDefaultReplica(region.getRegionInfo())<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>            ? region.getCoprocessorHost()<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>            : null; // do not invoke coprocessors if this is a secondary region replica<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>      List&lt;Pair&lt;WALKey, WALEdit&gt;&gt; walEntries = new ArrayList&lt;&gt;();<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span><a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      // Skip adding the edits to WAL if this is a secondary region replica<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>      boolean isPrimary = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>      Durability durability = isPrimary ? Durability.USE_DEFAULT : Durability.SKIP_WAL;<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span><a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>      for (WALEntry entry : entries) {<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>        if (!regionName.equals(entry.getKey().getEncodedRegionName())) {<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>          throw new NotServingRegionException("Replay request contains entries from multiple " +<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>              "regions. First region:" + regionName.toStringUtf8() + " , other region:"<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>              + entry.getKey().getEncodedRegionName());<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        }<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        if (regionServer.nonceManager != null &amp;&amp; isPrimary) {<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>          long nonceGroup = entry.getKey().hasNonceGroup()<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>            ? entry.getKey().getNonceGroup() : HConstants.NO_NONCE;<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>          long nonce = entry.getKey().hasNonce() ? entry.getKey().getNonce() : HConstants.NO_NONCE;<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>          regionServer.nonceManager.reportOperationFromWal(<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>              nonceGroup,<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>              nonce,<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>              entry.getKey().getWriteTime());<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>        }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>        Pair&lt;WALKey, WALEdit&gt; walEntry = (coprocessorHost == null) ? null : new Pair&lt;&gt;();<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>        List&lt;WALSplitter.MutationReplay&gt; edits = WALSplitter.getMutationsFromWALEntry(entry,<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          cells, walEntry, durability);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        if (coprocessorHost != null) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>          // Start coprocessor replay here. The coprocessor is for each WALEdit instead of a<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>          // KeyValue.<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          if (coprocessorHost.preWALRestore(region.getRegionInfo(), walEntry.getFirst(),<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>            walEntry.getSecond())) {<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>            // if bypass this log entry, ignore it ...<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>            continue;<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>          }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>          walEntries.add(walEntry);<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>        }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>        if(edits!=null &amp;&amp; !edits.isEmpty()) {<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>          long replaySeqId = (entry.getKey().hasOrigSequenceNumber()) ?<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>            entry.getKey().getOrigSequenceNumber() : entry.getKey().getLogSequenceNumber();<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>          OperationStatus[] result = doReplayBatchOp(region, edits, replaySeqId);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>          // check if it's a partial success<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>          for (int i = 0; result != null &amp;&amp; i &lt; result.length; i++) {<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>            if (result[i] != OperationStatus.SUCCESS) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>              throw new IOException(result[i].getExceptionMsg());<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>            }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>          }<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>        }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      }<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span><a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      //sync wal at the end because ASYNC_WAL is used above<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      WAL wal = getWAL(region);<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      if (wal != null) {<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>        wal.sync();<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      }<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      if (coprocessorHost != null) {<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>        for (Pair&lt;WALKey, WALEdit&gt; entry : walEntries) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>          coprocessorHost.postWALRestore(region.getRegionInfo(), entry.getFirst(),<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>            entry.getSecond());<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        }<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      }<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    } catch (IOException ie) {<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      throw new ServiceException(ie);<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    } finally {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>        regionServer.metricsRegionServer.updateReplay(<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      }<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>  }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span><a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>  WAL getWAL(Region region) {<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    return ((HRegion)region).getWAL();<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>  }<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  /**<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>   * Replicate WAL entries on the region server.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>   *<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>   * @param controller the RPC controller<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>   * @param request the request<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>   * @throws ServiceException<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>   */<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>  @Override<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>  @QosPriority(priority=HConstants.REPLICATION_QOS)<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>  public ReplicateWALEntryResponse replicateWALEntry(final RpcController controller,<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    try {<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>      checkOpen();<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>      if (regionServer.replicationSinkHandler != null) {<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        requestCount.increment();<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>        List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>        CellScanner cellScanner = ((HBaseRpcController)controller).cellScanner();<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        regionServer.getRegionServerCoprocessorHost().preReplicateLogEntries(entries, cellScanner);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>        regionServer.replicationSinkHandler.replicateLogEntries(entries, cellScanner,<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>          request.getReplicationClusterId(), request.getSourceBaseNamespaceDirPath(),<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>          request.getSourceHFileArchiveDirPath());<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        regionServer.getRegionServerCoprocessorHost().postReplicateLogEntries(entries, cellScanner);<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>      } else {<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        throw new ServiceException("Replication services are not initialized yet");<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>      }<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>    } catch (IOException ie) {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>      throw new ServiceException(ie);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>    }<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>  }<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>  /**<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>   * Roll the WAL writer of the region server.<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>   * @param controller the RPC controller<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>   * @param request the request<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>   * @throws ServiceException<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>   */<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>  @Override<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  public RollWALWriterResponse rollWALWriter(final RpcController controller,<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>      final RollWALWriterRequest request) throws ServiceException {<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>    try {<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>      checkOpen();<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>      requestCount.increment();<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>      regionServer.getRegionServerCoprocessorHost().preRollWALWriterRequest();<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      regionServer.walRoller.requestRollAll();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>      regionServer.getRegionServerCoprocessorHost().postRollWALWriterRequest();<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>      RollWALWriterResponse.Builder builder = RollWALWriterResponse.newBuilder();<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>      return builder.build();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    } catch (IOException ie) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new ServiceException(ie);<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>    }<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>  }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>  /**<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>   * Split a region on the region server.<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>   *<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>   * @param controller the RPC controller<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>   * @param request the request<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>   * @throws ServiceException<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>   */<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>  @Override<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>  public SplitRegionResponse splitRegion(final RpcController controller,<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>      final SplitRegionRequest request) throws ServiceException {<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>    try {<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>      checkOpen();<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>      requestCount.increment();<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>      Region region = getRegion(request.getRegion());<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>      region.startRegionOperation(Operation.SPLIT_REGION);<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>      if (region.getRegionInfo().getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>        throw new IOException("Can't split replicas directly. "<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>            + "Replicas are auto-split when their primary is split.");<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>      }<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>      LOG.info("Splitting " + region.getRegionInfo().getRegionNameAsString());<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      region.flush(true);<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>      byte[] splitPoint = null;<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>      if (request.hasSplitPoint()) {<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>        splitPoint = request.getSplitPoint().toByteArray();<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      }<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>      ((HRegion)region).forceSplit(splitPoint);<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>      regionServer.compactSplitThread.requestSplit(region, ((HRegion)region).checkSplit(),<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>        RpcServer.getRequestUser());<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>      return SplitRegionResponse.newBuilder().build();<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    } catch (DroppedSnapshotException ex) {<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      throw new ServiceException(ex);<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>    } catch (IOException ie) {<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>      throw new ServiceException(ie);<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>    }<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>  }<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span><a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>  /**<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>   * Stop the region server.<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>   *<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>   * @param controller the RPC controller<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>   * @param request the request<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>   * @throws ServiceException<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>   */<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>  @Override<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>  public StopServerResponse stopServer(final RpcController controller,<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>      final StopServerRequest request) throws ServiceException {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>    requestCount.increment();<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    String reason = request.getReason();<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    regionServer.stop(reason);<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>    return StopServerResponse.newBuilder().build();<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>  }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>  @Override<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>  public UpdateFavoredNodesResponse updateFavoredNodes(RpcController controller,<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      UpdateFavoredNodesRequest request) throws ServiceException {<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    List&lt;UpdateFavoredNodesRequest.RegionUpdateInfo&gt; openInfoList = request.getUpdateInfoList();<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>    UpdateFavoredNodesResponse.Builder respBuilder = UpdateFavoredNodesResponse.newBuilder();<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>    for (UpdateFavoredNodesRequest.RegionUpdateInfo regionUpdateInfo : openInfoList) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>      HRegionInfo hri = HRegionInfo.convert(regionUpdateInfo.getRegion());<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>      if (regionUpdateInfo.getFavoredNodesCount() &gt; 0) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>        regionServer.updateRegionFavoredNodesMapping(hri.getEncodedName(),<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>          regionUpdateInfo.getFavoredNodesList());<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>      }<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>    }<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>    respBuilder.setResponse(openInfoList.size());<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>    return respBuilder.build();<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>  }<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span><a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>  /**<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>   * Atomically bulk load several HFiles into an open region<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>   * @return true if successful, false is failed but recoverably (no action)<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>   * @throws ServiceException if failed unrecoverably<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>   */<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>  @Override<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>  public BulkLoadHFileResponse bulkLoadHFile(final RpcController controller,<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>      final BulkLoadHFileRequest request) throws ServiceException {<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>    long start = EnvironmentEdgeManager.currentTime();<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    try {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>      checkOpen();<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      requestCount.increment();<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      Region region = getRegion(request.getRegion());<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      boolean bypass = false;<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      boolean loaded = false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>      Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span><a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (!request.hasBulkToken()) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        // Old style bulk load. This will not be supported in future releases<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        List&lt;Pair&lt;byte[], String&gt;&gt; familyPaths = new ArrayList&lt;&gt;(request.getFamilyPathCount());<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>        for (FamilyPath familyPath : request.getFamilyPathList()) {<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>          familyPaths.add(new Pair&lt;&gt;(familyPath.getFamily().toByteArray(), familyPath.getPath()));<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>        }<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>        if (region.getCoprocessorHost() != null) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>          bypass = region.getCoprocessorHost().preBulkLoadHFile(familyPaths);<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>        }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>        try {<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>          if (!bypass) {<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>            map = region.bulkLoadHFiles(familyPaths, request.getAssignSeqNum(), null,<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>                request.getCopyFile());<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>            if (map != null) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>              loaded = true;<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>            }<a name="line.2148"><

<TRUNCATED>

[14/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
index 99a5bb1..98b388b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
@@ -893,2422 +893,2423 @@
 <span class="sourceLineNo">885</span>    status.markComplete("Initialization successful");<a name="line.885"></a>
 <span class="sourceLineNo">886</span>    LOG.info("Master has completed initialization");<a name="line.886"></a>
 <span class="sourceLineNo">887</span>    configurationManager.registerObserver(this.balancer);<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>    // Set master as 'initialized'.<a name="line.889"></a>
-<span class="sourceLineNo">890</span>    setInitialized(true);<a name="line.890"></a>
-<span class="sourceLineNo">891</span><a name="line.891"></a>
-<span class="sourceLineNo">892</span>    status.setStatus("Assign meta replicas");<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    metaBootstrap.assignMetaReplicas();<a name="line.893"></a>
-<span class="sourceLineNo">894</span><a name="line.894"></a>
-<span class="sourceLineNo">895</span>    status.setStatus("Starting quota manager");<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    initQuotaManager();<a name="line.896"></a>
-<span class="sourceLineNo">897</span><a name="line.897"></a>
-<span class="sourceLineNo">898</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    // master initialization. See HBASE-5916.<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.901"></a>
-<span class="sourceLineNo">902</span><a name="line.902"></a>
-<span class="sourceLineNo">903</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    status.setStatus("Checking ZNode ACLs");<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.905"></a>
-<span class="sourceLineNo">906</span><a name="line.906"></a>
-<span class="sourceLineNo">907</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    initMobCleaner();<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    if (this.cpHost != null) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      // don't let cp initialization errors kill the master<a name="line.912"></a>
-<span class="sourceLineNo">913</span>      try {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>        this.cpHost.postStartMaster();<a name="line.914"></a>
-<span class="sourceLineNo">915</span>      } catch (IOException ioe) {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      }<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>    zombieDetector.interrupt();<a name="line.920"></a>
-<span class="sourceLineNo">921</span>  }<a name="line.921"></a>
-<span class="sourceLineNo">922</span><a name="line.922"></a>
-<span class="sourceLineNo">923</span>  private void initMobCleaner() {<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    this.expiredMobFileCleanerChore = new ExpiredMobFileCleanerChore(this);<a name="line.924"></a>
-<span class="sourceLineNo">925</span>    getChoreService().scheduleChore(expiredMobFileCleanerChore);<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>    int mobCompactionPeriod = conf.getInt(MobConstants.MOB_COMPACTION_CHORE_PERIOD,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>        MobConstants.DEFAULT_MOB_COMPACTION_CHORE_PERIOD);<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    if (mobCompactionPeriod &gt; 0) {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      this.mobCompactChore = new MobCompactionChore(this, mobCompactionPeriod);<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      getChoreService().scheduleChore(mobCompactChore);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    } else {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      LOG<a name="line.933"></a>
-<span class="sourceLineNo">934</span>        .info("The period is " + mobCompactionPeriod + " seconds, MobCompactionChore is disabled");<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    this.mobCompactThread = new MasterMobCompactionThread(this);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>  }<a name="line.937"></a>
-<span class="sourceLineNo">938</span><a name="line.938"></a>
-<span class="sourceLineNo">939</span>  /**<a name="line.939"></a>
-<span class="sourceLineNo">940</span>   * Create a {@link MasterMetaBootstrap} instance.<a name="line.940"></a>
-<span class="sourceLineNo">941</span>   */<a name="line.941"></a>
-<span class="sourceLineNo">942</span>  MasterMetaBootstrap createMetaBootstrap(final HMaster master, final MonitoredTask status) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    // w/ a mocked up MasterMetaBootstrap.<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    return new MasterMetaBootstrap(master, status);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>  }<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>   * Create a {@link ServerManager} instance.<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   */<a name="line.950"></a>
-<span class="sourceLineNo">951</span>  ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    // w/ a mocked up ServerManager.<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    setupClusterConnection();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    return new ServerManager(master);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>  }<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      throws IOException, InterruptedException {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    this.serverManager.waitForRegionServers(status);<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    // Check zk for region servers that are up but didn't register<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    for (ServerName sn: this.regionServerTracker.getOnlineServers()) {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // The isServerOnline check is opportunistic, correctness is handled inside<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!this.serverManager.isServerOnline(sn)<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          &amp;&amp; serverManager.checkAndRecordNewServer(sn, ServerLoad.EMPTY_SERVERLOAD)) {<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        LOG.info("Registered server found up in zk but who has not yet reported in: " + sn);<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<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><a name="line.970"></a>
-<span class="sourceLineNo">971</span>  void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    this.clusterSchemaService = new ClusterSchemaServiceImpl(this);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    this.clusterSchemaService.startAndWait();<a name="line.973"></a>
-<span class="sourceLineNo">974</span>    if (!this.clusterSchemaService.isRunning()) throw new HBaseIOException("Failed start");<a name="line.974"></a>
-<span class="sourceLineNo">975</span>  }<a name="line.975"></a>
-<span class="sourceLineNo">976</span><a name="line.976"></a>
-<span class="sourceLineNo">977</span>  void initQuotaManager() throws IOException {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    MasterQuotaManager quotaManager = new MasterQuotaManager(this);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    this.assignmentManager.setRegionStateListener((RegionStateListener)quotaManager);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    quotaManager.start();<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    this.quotaManager = quotaManager;<a name="line.981"></a>
-<span class="sourceLineNo">982</span>  }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>  boolean isCatalogJanitorEnabled() {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    return catalogJanitorChore != null ?<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      catalogJanitorChore.getEnabled() : false;<a name="line.986"></a>
-<span class="sourceLineNo">987</span>  }<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>  boolean isCleanerChoreEnabled() {<a name="line.989"></a>
-<span class="sourceLineNo">990</span>    boolean hfileCleanerFlag = true, logCleanerFlag = true;<a name="line.990"></a>
-<span class="sourceLineNo">991</span><a name="line.991"></a>
-<span class="sourceLineNo">992</span>    if (hfileCleaner != null) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>      hfileCleanerFlag = hfileCleaner.getEnabled();<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>    if (logCleaner != null) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      logCleanerFlag = logCleaner.getEnabled();<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    }<a name="line.998"></a>
-<span class="sourceLineNo">999</span><a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    return (hfileCleanerFlag &amp;&amp; logCleanerFlag);<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>  }<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span><a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>  @Override<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>  public TableDescriptors getTableDescriptors() {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    return this.tableDescriptors;<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>  }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span><a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  @Override<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  public ServerManager getServerManager() {<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    return this.serverManager;<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>  }<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span><a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  @Override<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    return this.fileSystemManager;<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  }<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span><a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>  @Override<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>  public MasterWalManager getMasterWalManager() {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>    return this.walManager;<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>  }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span><a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  @Override<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  public TableStateManager getTableStateManager() {<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    return tableStateManager;<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  }<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span><a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>  /*<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>   * Start up all services. If any of these threads gets an unhandled exception<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * then they just die with a logged message.  This should be fine because<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   * in general, we do not expect the master to get such unhandled exceptions<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>   *  as OOMEs; it should be lightly loaded. See what HRegionServer does if<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   *  need to install an unexpected exception handler.<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   */<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>  private void startServiceThreads() throws IOException{<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   // Start the executor service pools<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   this.service.startExecutorService(ExecutorType.MASTER_OPEN_REGION,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>      conf.getInt("hbase.master.executor.openregion.threads", 5));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>   this.service.startExecutorService(ExecutorType.MASTER_CLOSE_REGION,<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      conf.getInt("hbase.master.executor.closeregion.threads", 5));<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   this.service.startExecutorService(ExecutorType.MASTER_SERVER_OPERATIONS,<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      conf.getInt("hbase.master.executor.serverops.threads", 5));<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   this.service.startExecutorService(ExecutorType.MASTER_META_SERVER_OPERATIONS,<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      conf.getInt("hbase.master.executor.meta.serverops.threads", 5));<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>   this.service.startExecutorService(ExecutorType.M_LOG_REPLAY_OPS,<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      conf.getInt("hbase.master.executor.logreplayops.threads", 10));<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span><a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>   // We depend on there being only one instance of this executor running<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>   // at a time.  To do concurrency, would need fencing of enable/disable of<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>   // tables.<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>   // Any time changing this maxThreads to &gt; 1, pls see the comment at<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>   // AccessController#postCompletedCreateTableAction<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>   this.service.startExecutorService(ExecutorType.MASTER_TABLE_OPERATIONS, 1);<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>   startProcedureExecutor();<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span><a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>   // Start log cleaner thread<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>   int cleanerInterval = conf.getInt("hbase.master.cleaner.interval", 60 * 1000);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>   this.logCleaner =<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      new LogCleaner(cleanerInterval,<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>         this, conf, getMasterWalManager().getFileSystem(),<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>         getMasterWalManager().getOldLogDir());<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    getChoreService().scheduleChore(logCleaner);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>   //start the hfile archive cleaner thread<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    Path archiveDir = HFileArchiveUtil.getArchivePath(conf);<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    Map&lt;String, Object&gt; params = new HashMap&lt;&gt;();<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    params.put(MASTER, this);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>    this.hfileCleaner = new HFileCleaner(cleanerInterval, this, conf, getMasterFileSystem()<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        .getFileSystem(), archiveDir, params);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>    getChoreService().scheduleChore(hfileCleaner);<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>    serviceStarted = true;<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>    if (LOG.isTraceEnabled()) {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      LOG.trace("Started service threads");<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    // Start replication zk node cleaner<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>    if (conf.getClass("hbase.region.replica.replication.replicationQueues.class",<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>      ReplicationFactory.defaultReplicationQueueClass) == ReplicationQueuesZKImpl.class) {<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>      try {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>        replicationZKNodeCleanerChore = new ReplicationZKNodeCleanerChore(this, cleanerInterval,<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>            new ReplicationZKNodeCleaner(this.conf, this.getZooKeeper(), this));<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>        getChoreService().scheduleChore(replicationZKNodeCleanerChore);<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>      } catch (Exception e) {<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        LOG.error("start replicationZKNodeCleanerChore failed", e);<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>    replicationMetaCleaner = new ReplicationMetaCleaner(this, this, cleanerInterval);<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    getChoreService().scheduleChore(replicationMetaCleaner);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>  }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>  @Override<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  protected void sendShutdownInterrupt() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    super.sendShutdownInterrupt();<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    stopProcedureExecutor();<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  }<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span><a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>  @Override<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>  protected void stopServiceThreads() {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    if (masterJettyServer != null) {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      LOG.info("Stopping master jetty server");<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>      try {<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>        masterJettyServer.stop();<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>      } catch (Exception e) {<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>        LOG.error("Failed to stop master jetty server", e);<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>    super.stopServiceThreads();<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    stopChores();<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span><a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    // Wait for all the remaining region servers to report in IFF we were<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    // running a cluster shutdown AND we were NOT aborting.<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    if (!isAborted() &amp;&amp; this.serverManager != null &amp;&amp;<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>        this.serverManager.isClusterShutdown()) {<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      this.serverManager.letRegionServersShutdown();<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>    }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>    if (LOG.isDebugEnabled()) {<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      LOG.debug("Stopping service threads");<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>    }<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>    // Clean up and close up shop<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>    if (this.logCleaner != null) this.logCleaner.cancel(true);<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>    if (this.hfileCleaner != null) this.hfileCleaner.cancel(true);<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>    if (this.replicationZKNodeCleanerChore != null) this.replicationZKNodeCleanerChore.cancel(true);<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>    if (this.replicationMetaCleaner != null) this.replicationMetaCleaner.cancel(true);<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>    if (this.quotaManager != null) this.quotaManager.stop();<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    if (this.activeMasterManager != null) this.activeMasterManager.stop();<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>    if (this.serverManager != null) this.serverManager.stop();<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>    if (this.assignmentManager != null) this.assignmentManager.stop();<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>    if (this.walManager != null) this.walManager.stop();<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>    if (this.fileSystemManager != null) this.fileSystemManager.stop();<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>    if (this.mpmHost != null) this.mpmHost.stop("server shutting down.");<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>  private void startProcedureExecutor() throws IOException {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    final MasterProcedureEnv procEnv = new MasterProcedureEnv(this);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>    final Path walDir = new Path(FSUtils.getWALRootDir(this.conf),<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>        MasterProcedureConstants.MASTER_PROCEDURE_LOGDIR);<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span><a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>    procedureStore = new WALProcedureStore(conf, walDir.getFileSystem(conf), walDir,<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        new MasterProcedureEnv.WALStoreLeaseRecovery(this));<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>    procedureStore.registerListener(new MasterProcedureEnv.MasterProcedureStoreListener(this));<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>    procedureExecutor = new ProcedureExecutor(conf, procEnv, procedureStore,<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>        procEnv.getProcedureScheduler());<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>    configurationManager.registerObserver(procEnv);<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span><a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS,<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>        Math.max(Runtime.getRuntime().availableProcessors(),<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>          MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>    final boolean abortOnCorruption = conf.getBoolean(<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>        MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>    procedureStore.start(numThreads);<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>    procedureExecutor.start(numThreads, abortOnCorruption);<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>  }<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span><a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>  private void stopProcedureExecutor() {<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>    if (procedureExecutor != null) {<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      configurationManager.deregisterObserver(procedureExecutor.getEnvironment());<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      procedureExecutor.stop();<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    if (procedureStore != null) {<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>      procedureStore.stop(isAborted());<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>  private void stopChores() {<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>    if (this.expiredMobFileCleanerChore != null) {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>      this.expiredMobFileCleanerChore.cancel(true);<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>    }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    if (this.mobCompactChore != null) {<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>      this.mobCompactChore.cancel(true);<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>    }<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    if (this.balancerChore != null) {<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>      this.balancerChore.cancel(true);<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    }<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>    if (this.normalizerChore != null) {<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>      this.normalizerChore.cancel(true);<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>    }<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>    if (this.clusterStatusChore != null) {<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>      this.clusterStatusChore.cancel(true);<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>    }<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    if (this.catalogJanitorChore != null) {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      this.catalogJanitorChore.cancel(true);<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>    }<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>    if (this.clusterStatusPublisherChore != null){<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>      clusterStatusPublisherChore.cancel(true);<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    }<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>    if (this.mobCompactThread != null) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>      this.mobCompactThread.close();<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>    }<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>    if (this.periodicDoMetricsChore != null) {<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>      periodicDoMetricsChore.cancel();<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>    }<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>  }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>  /**<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   * @return Get remote side's InetAddress<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>   */<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>  InetAddress getRemoteInetAddress(final int port,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>      final long serverStartCode) throws UnknownHostException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>    // Do it out here in its own little method so can fake an address when<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>    // mocking up in tests.<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>    InetAddress ia = RpcServer.getRemoteIp();<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span><a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>    // The call could be from the local regionserver,<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>    // in which case, there is no remote address.<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    if (ia == null &amp;&amp; serverStartCode == startcode) {<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      InetSocketAddress isa = rpcServices.getSocketAddress();<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>      if (isa != null &amp;&amp; isa.getPort() == port) {<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        ia = isa.getAddress();<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>      }<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    return ia;<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>  /**<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>   * @return Maximum time we should run balancer for<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>   */<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>  private int getMaxBalancingTime() {<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>    int maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_MAX_BALANCING, -1);<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>    if (maxBalancingTime == -1) {<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // if max balancing time isn't set, defaulting it to period time<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_PERIOD,<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>        HConstants.DEFAULT_HBASE_BALANCER_PERIOD);<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>    }<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>    return maxBalancingTime;<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>  /**<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>   * @return Maximum number of regions in transition<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>   */<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>  private int getMaxRegionsInTransition() {<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>    int numRegions = this.assignmentManager.getRegionStates().getRegionAssignments().size();<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>    return Math.max((int) Math.floor(numRegions * this.maxRitPercent), 1);<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>  }<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>   * It first sleep to the next balance plan start time. Meanwhile, throttling by the max<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>   * number regions in transition to protect availability.<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>   * @param nextBalanceStartTime The next balance plan start time<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>   * @param maxRegionsInTransition max number of regions in transition<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>   * @param cutoffTime when to exit balancer<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>   */<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>  private void balanceThrottling(long nextBalanceStartTime, int maxRegionsInTransition,<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>      long cutoffTime) {<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    boolean interrupted = false;<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span><a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>    // Sleep to next balance plan start time<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>    // But if there are zero regions in transition, it can skip sleep to speed up.<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    while (!interrupted &amp;&amp; System.currentTimeMillis() &lt; nextBalanceStartTime<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount() != 0) {<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>      try {<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>        Thread.sleep(100);<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      } catch (InterruptedException ie) {<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>        interrupted = true;<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>      }<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>    // Throttling by max number regions in transition<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    while (!interrupted<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        &amp;&amp; maxRegionsInTransition &gt; 0<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount()<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>        &gt;= maxRegionsInTransition &amp;&amp; System.currentTimeMillis() &lt;= cutoffTime) {<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      try {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        // sleep if the number of regions in transition exceeds the limit<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>        Thread.sleep(100);<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>      } catch (InterruptedException ie) {<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>        interrupted = true;<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><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    if (interrupted) Thread.currentThread().interrupt();<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>  }<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span><a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>  public boolean balance() throws IOException {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>    return balance(false);<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>  }<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>  public boolean balance(boolean force) throws IOException {<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    // if master not initialized, don't run balancer.<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>    if (!isInitialized()) {<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>      LOG.debug("Master has not been initialized, don't run balancer.");<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>      LOG.info("Master is in maintenanceMode mode, don't run balancer.");<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>      return false;<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>    int maxRegionsInTransition = getMaxRegionsInTransition();<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>    synchronized (this.balancer) {<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>      // If balance not true, don't run balancer.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>      if (!this.loadBalancerTracker.isBalancerOn()) return false;<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>      // Only allow one balance run at at time.<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>      if (this.assignmentManager.getRegionStates().isRegionsInTransition()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>        Set&lt;RegionState&gt; regionsInTransition =<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>          this.assignmentManager.getRegionStates().getRegionsInTransition();<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>        // if hbase:meta region is in transition, result of assignment cannot be recorded<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        // ignore the force flag in that case<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>        boolean metaInTransition = assignmentManager.getRegionStates().isMetaRegionInTransition();<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>        String prefix = force &amp;&amp; !metaInTransition ? "R" : "Not r";<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>        LOG.debug(prefix + "unning balancer because " + regionsInTransition.size() +<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>          " region(s) in transition: " + org.apache.commons.lang.StringUtils.<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>            abbreviate(regionsInTransition.toString(), 256));<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>        if (!force || metaInTransition) return false;<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      }<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      if (this.serverManager.areDeadServersInProgress()) {<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>        LOG.debug("Not running balancer because processing dead regionserver(s): " +<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>          this.serverManager.getDeadServers());<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>        return false;<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>      }<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span><a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>      if (this.cpHost != null) {<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>        try {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>          if (this.cpHost.preBalance()) {<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>            LOG.debug("Coprocessor bypassing balancer request");<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>            return false;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>          }<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>        } catch (IOException ioe) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>          LOG.error("Error invoking master coprocessor preBalance()", ioe);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>          return false;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>        }<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      }<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span><a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>      Map&lt;TableName, Map&lt;ServerName, List&lt;HRegionInfo&gt;&gt;&gt; assignmentsByTable =<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>        this.assignmentManager.getRegionStates().getAssignmentsByTable();<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>      List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span><a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>      //Give the balancer the current cluster state.<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>      this.balancer.setClusterStatus(getClusterStatus());<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>      this.balancer.setClusterLoad(<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>              this.assignmentManager.getRegionStates().getAssignmentsByTable(true));<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span><a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>      for (Entry&lt;TableName, Map&lt;ServerName, List&lt;HRegionInfo&gt;&gt;&gt; e : assignmentsByTable.entrySet()) {<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        List&lt;RegionPlan&gt; partialPlans = this.balancer.balanceCluster(e.getKey(), e.getValue());<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>        if (partialPlans != null) plans.addAll(partialPlans);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>      }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      long balanceStartTime = System.currentTimeMillis();<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      long cutoffTime = balanceStartTime + this.maxBlancingTime;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>      int rpCount = 0;  // number of RegionPlans balanced so far<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (plans != null &amp;&amp; !plans.isEmpty()) {<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>        int balanceInterval = this.maxBlancingTime / plans.size();<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>        LOG.info("Balancer plans size is " + plans.size() + ", the balance interval is "<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>            + balanceInterval + " ms, and the max number regions in transition is "<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>            + maxRegionsInTransition);<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>        for (RegionPlan plan: plans) {<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>          LOG.info("balance " + plan);<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>          //TODO: bulk assign<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>          this.assignmentManager.balance(plan);<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>          rpCount++;<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span><a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>            cutoffTime);<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span><a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>            // a security net for now)<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>                + this.maxBlancingTime);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>            break;<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>          }<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><a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      if (this.cpHost != null) {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>        try {<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>        } catch (IOException ioe) {<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>          // balancing already succeeded so don't change the result<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>        }<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>      }<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>    }<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>    // Return true indicating a success.<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    return true;<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>  }<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span><a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>  @Override<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>  @VisibleForTesting<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>    return this.normalizer;<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>  }<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span><a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>  /**<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>   *<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>   *    is globally disabled)<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>   */<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  public boolean normalizeRegions() throws IOException {<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (!isInitialized()) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>      return false;<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    }<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span><a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>    if (isInMaintenanceMode()) {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      return false;<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    }<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      return false;<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>    synchronized (this.normalizer) {<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      // Don't run the normalizer concurrently<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span><a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>      Collections.shuffle(allEnabledTables);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span><a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      for (TableName table : allEnabledTables) {<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>        if (isInMaintenanceMode()) {<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>          return false;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>        }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>        HTableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>          LOG.debug("Skipping normalization for table: " + table + ", as it's either system"<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>              + " table or doesn't have auto normalization turned on");<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>          continue;<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>        }<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>        if (plans != null) {<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>          for (NormalizationPlan plan : plans) {<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>              splitPlanCount++;<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>              mergePlanCount++;<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>            }<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>          }<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>        }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      }<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    // Return true indicating a success.<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>    return true;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>  }<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span><a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>  /**<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   */<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>  String getClientIdAuditPrefix() {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>    return "Client=" + RpcServer.getRequestUserName() + "/" + RpcServer.getRemoteAddress();<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>  }<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span><a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>  /**<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * Switch for the background CatalogJanitor thread.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * if disabled.<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   */<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  }<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span><a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  @Override<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>  public long mergeRegions(<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>      final HRegionInfo[] regionsToMerge,<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      final boolean forcible,<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      final long nonceGroup,<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      final long nonce) throws IOException {<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    checkInitialized();<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span><a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>    assert(regionsToMerge.length == 2);<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span><a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>    }<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span><a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      throw new IOException (<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    if (regionsToMerge[0].compareTo(regionsToMerge[1]) == 0) {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      throw new MergeRegionException(<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span><a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      @Override<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>      protected void run() throws IOException {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span><a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span><a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>          regionsToMerge, forcible));<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span><a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      }<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span><a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      @Override<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      protected String getDescription() {<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        return "DisableTableProcedure";<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>      }<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>    });<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>  }<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span><a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>  @Override<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>  public long splitRegion(<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      final HRegionInfo regionInfo,<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      final byte[] splitRow,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      final long nonceGroup,<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      final long nonce) throws IOException {<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>    checkInitialized();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      @Override<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      protected void run() throws IOException {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span><a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>        LOG.info(getClientIdAuditPrefix() + " Split region " + regionInfo);<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>        // Execute the operation asynchronously<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>        submitProcedure(new SplitTableRegionProcedure(procedureExecutor.getEnvironment(),<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>            regionInfo, splitRow));<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      }<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span><a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      @Override<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      protected String getDescription() {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>        return "DisableTableProcedure";<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>      }<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>    });<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>  }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span><a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>  @VisibleForTesting // Public so can be accessed by tests.<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  public void move(final byte[] encodedRegionName,<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      final byte[] destServerName) throws HBaseIOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span><a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    HRegionInfo hri;<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>    if (regionState != null) {<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      hri = regionState.getRegion();<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } else {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span><a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    ServerName dest;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>        "choosing a server at random");<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>        regionState.getServerName());<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      if (dest == null) {<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>        return;<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      }<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    } else {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      if (dest == null) {<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        return;<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      }<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>        // regions on master. Regions on master could be put on other region<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>        // server intentionally by test however.<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>          + " because it should not be on master");<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>        return;<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>      }<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    }<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span><a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      return;<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    // Now we can do the move<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span><a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      checkInitialized();<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      if (this.cpHost != null) {<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        if (this.cpHost.preMove(hri, rp.getSource(), rp.getDestination())) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>          return;<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>        }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      }<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // warmup the region on the destination before initiating the move. this call<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>      // closed<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>      this.assignmentManager.balance(rp);<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>      if (this.cpHost != null) {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>      }<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    } catch (IOException ioe) {<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>      if (ioe instanceof HBaseIOException) {<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>        throw (HBaseIOException)ioe;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>      }<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      throw new HBaseIOException(ioe);<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    }<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>  }<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span><a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>  @Override<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>  public long createTable(<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      final HTableDescriptor hTableDescriptor,<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      final byte [][] splitKeys,<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      final long nonceGroup,<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      final long nonce) throws IOException {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>    checkInitialized();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span><a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>    String namespace = hTableDescriptor.getTableName().getNamespaceAsString();<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span><a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    HRegionInfo[] newRegions = ModifyRegionUtils.createHRegionInfos(hTableDescriptor, splitKeys);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>    sanityCheckTableDescriptor(hTableDescriptor);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span><a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      @Override<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      protected void run() throws IOException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>        getMaster().getMasterCoprocessorHost().preCreateTable(hTableDescriptor, newRegions);<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span><a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor);<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span><a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createLatch();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        submitProcedure(new CreateTableProcedure(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>            procedureExecutor.getEnvironment(), hTableDescriptor, newRegions, latch));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>        latch.await();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span><a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        getMaster().getMasterCoprocessorHost().postCreateTable(hTableDescriptor, newRegions);<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      }<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span><a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      @Override<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      protected String getDescription() {<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>        return "CreateTableProcedure";<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      }<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>    });<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>  }<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span><a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>  @Override<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>  public long createSystemTable(final HTableDescriptor hTableDescriptor) throws IOException {<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>    if (isStopped()) {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      throw new MasterNotRunningException();<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    }<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    TableName tableName = hTableDescriptor.getTableName();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>    if (!(tableName.isSystemTable())) {<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>      throw new IllegalArgumentException(<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        "Only system table creation can use this createSystemTable API");<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>    }<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span><a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>    HRegionInfo[] newRegions = ModifyRegionUtils.createHRegionInfos(hTableDescriptor, null);<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span><a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    LOG.info(getClientIdAuditPrefix() + " create " + hTableDescriptor);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span><a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>    // to use nonce to detect duplicated RPC call.<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), hTableDescriptor, newRegions));<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span><a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>    return procId;<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>  }<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span><a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>  /**<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>   * @throws IOException<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>   */<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>  private void sanityCheckTableDescriptor(final HTableDescriptor htd) throws IOException {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>    boolean logWarn = false;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      logWarn = true;<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    }<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    String tableVal = htd.getConfigurationValue(CONF_KEY);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      logWarn = true;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    }<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span><a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    // check max file size<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    if (maxFileSize &lt; 0) {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>    }<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          + "number of regions.";<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>    }<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span><a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>    // check flush size<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    if (flushSize &lt; 0) {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          + " very frequent flushing.";<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>    }<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span><a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>    try {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>      checkClassLoading(conf, htd);<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>    } catch (Exception ex) {<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span><a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    // check compression can be loaded<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    try {<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      checkCompression(htd);<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    } catch (IOException e) {<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>    }<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span><a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>    // check encryption can be loaded<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>    try {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>      checkEncryption(conf, htd);<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    } catch (IOException e) {<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    // Verify compaction policy<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>    try{<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      checkCompactionPolicy(conf, htd);<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    } catch(IOException e){<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    }<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    // check that we have at least 1 CF<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      String message = "Table should have at least one column family.";<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>    }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>    for (HColumnDescriptor hcd : htd.getColumnFamilies()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.1762"></a>
-<span class="sourceLineNo

<TRUNCATED>

[06/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
index c885b3a..ac9ce7d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
@@ -1303,1942 +1303,1943 @@
 <span class="sourceLineNo">1295</span>      throw new RegionServerStoppedException("File system not available");<a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>    }<a name="line.1296"></a>
 <span class="sourceLineNo">1297</span>    if (!regionServer.isOnline()) {<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      throw new ServerNotRunningYetException("Server is not running yet");<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    }<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>  /**<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   * @return list of blocking services and their security info classes that this server supports<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   */<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  protected List&lt;BlockingServiceAndInterface&gt; getServices() {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>    List&lt;BlockingServiceAndInterface&gt; bssi = new ArrayList&lt;&gt;(2);<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      ClientService.newReflectiveBlockingService(this),<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      ClientService.BlockingInterface.class));<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      AdminService.newReflectiveBlockingService(this),<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      AdminService.BlockingInterface.class));<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    return bssi;<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>  }<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span><a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>  public InetSocketAddress getSocketAddress() {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    return isa;<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>  }<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span><a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>  @Override<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>  public int getPriority(RequestHeader header, Message param, User user) {<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>    return priority.getPriority(header, param, user);<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>  }<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>  @Override<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>  public long getDeadline(RequestHeader header, Message param) {<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>    return priority.getDeadline(header, param);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>  }<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span><a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>  /*<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>   * Check if an OOME and, if so, abort immediately to avoid creating more objects.<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>   *<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>   * @param e<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>   *<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>   * @return True if we OOME'd and are aborting.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>   */<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>  @Override<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>  public boolean checkOOME(final Throwable e) {<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>    return exitIfOOME(e);<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>  }<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span><a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>  public static boolean exitIfOOME(final Throwable e ){<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>    boolean stop = false;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    try {<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>      if (e instanceof OutOfMemoryError<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>          || (e.getCause() != null &amp;&amp; e.getCause() instanceof OutOfMemoryError)<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>          || (e.getMessage() != null &amp;&amp; e.getMessage().contains(<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>              "java.lang.OutOfMemoryError"))) {<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>        stop = true;<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>        LOG.fatal("Run out of memory; " + RSRpcServices.class.getSimpleName()<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>          + " will abort itself immediately", e);<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>      }<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    } finally {<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>      if (stop) {<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>        Runtime.getRuntime().halt(1);<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>      }<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>    }<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>    return stop;<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>  }<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span><a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>  /**<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>   * Close a region on the region server.<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>   *<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>   * @param controller the RPC controller<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>   * @param request the request<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>   * @throws ServiceException<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>   */<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>  @Override<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>  public CloseRegionResponse closeRegion(final RpcController controller,<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>      final CloseRegionRequest request) throws ServiceException {<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>    final ServerName sn = (request.hasDestinationServer() ?<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>      ProtobufUtil.toServerName(request.getDestinationServer()) : null);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span><a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>    try {<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>      checkOpen();<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>      if (request.hasServerStartCode()) {<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>        // check that we are the same server that this RPC is intended for.<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>        long serverStartCode = request.getServerStartCode();<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>        if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>          throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>              "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>              + regionServer.serverName));<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>        }<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>      }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>      final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion());<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span><a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>      requestCount.increment();<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>      if (sn == null) {<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>        LOG.info("Close " + encodedRegionName + " without moving");<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>      } else {<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>        LOG.info("Close " + encodedRegionName + ", moving to " + sn);<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      }<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      boolean closed = regionServer.closeRegion(encodedRegionName, false, sn);<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>      CloseRegionResponse.Builder builder = CloseRegionResponse.newBuilder().setClosed(closed);<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>      return builder.build();<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    } catch (IOException ie) {<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>      throw new ServiceException(ie);<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    }<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  }<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span><a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>  @Override<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public CloseRegionForSplitOrMergeResponse closeRegionForSplitOrMerge(<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      final RpcController controller,<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>      final CloseRegionForSplitOrMergeRequest request) throws ServiceException {<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    try {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      checkOpen();<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span><a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      List&lt;String&gt; encodedRegionNameList = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>      for(int i = 0; i &lt; request.getRegionCount(); i++) {<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>        final String encodedRegionName = ProtobufUtil.getRegionEncodedName(request.getRegion(i));<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>        // Can be null if we're calling close on a region that's not online<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>        final Region targetRegion = regionServer.getFromOnlineRegions(encodedRegionName);<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>        if ((targetRegion != null) &amp;&amp; (targetRegion.getCoprocessorHost() != null)) {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>          targetRegion.getCoprocessorHost().preClose(false);<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>          encodedRegionNameList.add(encodedRegionName);<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>      requestCount.increment();<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>      LOG.info("Close and offline " + encodedRegionNameList + " regions.");<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>      boolean closed = regionServer.closeAndOfflineRegionForSplitOrMerge(encodedRegionNameList);<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>      CloseRegionForSplitOrMergeResponse.Builder builder =<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>          CloseRegionForSplitOrMergeResponse.newBuilder().setClosed(closed);<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      return builder.build();<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    } catch (IOException ie) {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>      throw new ServiceException(ie);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  /**<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>   * Compact a region on the region server.<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>   *<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>   * @param controller the RPC controller<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>   * @param request the request<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>   * @throws ServiceException<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>   */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>  @Override<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>  public CompactRegionResponse compactRegion(final RpcController controller,<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>      final CompactRegionRequest request) throws ServiceException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    try {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      checkOpen();<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      requestCount.increment();<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>      Region region = getRegion(request.getRegion());<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      region.startRegionOperation(Operation.COMPACT_REGION);<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>      LOG.info("Compacting " + region.getRegionInfo().getRegionNameAsString());<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>      boolean major = false;<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>      byte [] family = null;<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>      Store store = null;<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>      if (request.hasFamily()) {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>        family = request.getFamily().toByteArray();<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>        store = region.getStore(family);<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        if (store == null) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>          throw new ServiceException(new DoNotRetryIOException("column family " +<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>              Bytes.toString(family) + " does not exist in region " +<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>              region.getRegionInfo().getRegionNameAsString()));<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>        }<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>      }<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      if (request.hasMajor()) {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>        major = request.getMajor();<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      }<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      if (major) {<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>        if (family != null) {<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>          store.triggerMajorCompaction();<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>        } else {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>          region.triggerMajorCompaction();<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>      }<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span><a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      String familyLogMsg = (family != null)?" for column family: " + Bytes.toString(family):"";<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>      if (LOG.isTraceEnabled()) {<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>        LOG.trace("User-triggered compaction requested for region "<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>          + region.getRegionInfo().getRegionNameAsString() + familyLogMsg);<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>      }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      String log = "User-triggered " + (major ? "major " : "") + "compaction" + familyLogMsg;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>      if(family != null) {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>        regionServer.compactSplitThread.requestCompaction(region, store, log,<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      } else {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        regionServer.compactSplitThread.requestCompaction(region, log,<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>          Store.PRIORITY_USER, null, RpcServer.getRequestUser());<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>      }<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>      return CompactRegionResponse.newBuilder().build();<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    } catch (IOException ie) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      throw new ServiceException(ie);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  }<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Flush a region on the region server.<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   *<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   * @param controller the RPC controller<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * @param request the request<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * @throws ServiceException<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>  @Override<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>  public FlushRegionResponse flushRegion(final RpcController controller,<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>      final FlushRegionRequest request) throws ServiceException {<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>    try {<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>      checkOpen();<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>      requestCount.increment();<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>      Region region = getRegion(request.getRegion());<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>      LOG.info("Flushing " + region.getRegionInfo().getRegionNameAsString());<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      boolean shouldFlush = true;<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>      if (request.hasIfOlderThanTs()) {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>        shouldFlush = region.getEarliestFlushTimeForAllStores() &lt; request.getIfOlderThanTs();<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      }<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>      FlushRegionResponse.Builder builder = FlushRegionResponse.newBuilder();<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      if (shouldFlush) {<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        boolean writeFlushWalMarker =  request.hasWriteFlushWalMarker() ?<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>            request.getWriteFlushWalMarker() : false;<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>        // Go behind the curtain so we can manage writing of the flush WAL marker<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>        HRegion.FlushResultImpl flushResult = (HRegion.FlushResultImpl)<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>            ((HRegion)region).flushcache(true, writeFlushWalMarker);<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        boolean compactionNeeded = flushResult.isCompactionNeeded();<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>        if (compactionNeeded) {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>          regionServer.compactSplitThread.requestSystemCompaction(region,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>            "Compaction through user triggered flush");<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>        }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>        builder.setFlushed(flushResult.isFlushSucceeded());<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>        builder.setWroteFlushWalMarker(flushResult.wroteFlushWalMarker);<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      }<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      builder.setLastFlushTime(region.getEarliestFlushTimeForAllStores());<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      return builder.build();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>    } catch (DroppedSnapshotException ex) {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Cache flush can fail in a few places. If it fails in a critical<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // section, we get a DroppedSnapshotException and a replay of wal<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      // is required. Currently the only way to do this is a restart of<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>      // the server.<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      throw new ServiceException(ex);<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>    } catch (IOException ie) {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>      throw new ServiceException(ie);<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>    }<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span><a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>  @Override<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  public GetOnlineRegionResponse getOnlineRegion(final RpcController controller,<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      final GetOnlineRegionRequest request) throws ServiceException {<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    try {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      checkOpen();<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      requestCount.increment();<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      Map&lt;String, Region&gt; onlineRegions = regionServer.onlineRegions;<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      List&lt;HRegionInfo&gt; list = new ArrayList&lt;&gt;(onlineRegions.size());<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      for (Region region: onlineRegions.values()) {<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>        list.add(region.getRegionInfo());<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>      }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      Collections.sort(list);<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      return ResponseConverter.buildGetOnlineRegionResponse(list);<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    } catch (IOException ie) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      throw new ServiceException(ie);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>  }<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span><a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>  @Override<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  public GetRegionInfoResponse getRegionInfo(final RpcController controller,<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      final GetRegionInfoRequest request) throws ServiceException {<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>    try {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      checkOpen();<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      requestCount.increment();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      Region region = getRegion(request.getRegion());<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      HRegionInfo info = region.getRegionInfo();<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      builder.setRegionInfo(HRegionInfo.convert(info));<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      if (request.hasCompactionState() &amp;&amp; request.getCompactionState()) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>        builder.setCompactionState(region.getCompactionState());<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      builder.setIsRecovering(region.isRecovering());<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      return builder.build();<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    } catch (IOException ie) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>      throw new ServiceException(ie);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>  }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span><a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  @Override<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  public GetRegionLoadResponse getRegionLoad(RpcController controller,<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      GetRegionLoadRequest request) throws ServiceException {<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span><a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    List&lt;Region&gt; regions;<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    if (request.hasTableName()) {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>      TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>      regions = regionServer.getOnlineRegions(tableName);<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>    } else {<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>      regions = regionServer.getOnlineRegions();<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>    List&lt;RegionLoad&gt; rLoads = new ArrayList&lt;&gt;(regions.size());<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>    RegionLoad.Builder regionLoadBuilder = ClusterStatusProtos.RegionLoad.newBuilder();<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    RegionSpecifier.Builder regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span><a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    try {<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>      for (Region region : regions) {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>        rLoads.add(regionServer.createRegionLoad(region, regionLoadBuilder, regionSpecifier));<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>      }<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>    } catch (IOException e) {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>      throw new ServiceException(e);<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>    }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>    GetRegionLoadResponse.Builder builder = GetRegionLoadResponse.newBuilder();<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>    builder.addAllRegionLoads(rLoads);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>    return builder.build();<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>  }<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span><a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>  /**<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>   * Get some information of the region server.<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>   *<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>   * @param controller the RPC controller<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>   * @param request the request<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>   * @throws ServiceException<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>   */<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>  @Override<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>  public GetServerInfoResponse getServerInfo(final RpcController controller,<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      final GetServerInfoRequest request) throws ServiceException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    try {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      checkOpen();<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    } catch (IOException ie) {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>      throw new ServiceException(ie);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    requestCount.increment();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>    int infoPort = regionServer.infoServer != null ? regionServer.infoServer.getPort() : -1;<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>    return ResponseConverter.buildGetServerInfoResponse(regionServer.serverName, infoPort);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  }<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span><a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>  @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>  public GetStoreFileResponse getStoreFile(final RpcController controller,<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      final GetStoreFileRequest request) throws ServiceException {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    try {<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      checkOpen();<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      Region region = getRegion(request.getRegion());<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>      requestCount.increment();<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>      Set&lt;byte[]&gt; columnFamilies;<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      if (request.getFamilyCount() == 0) {<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        columnFamilies = region.getTableDesc().getFamiliesKeys();<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>      } else {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>        columnFamilies = new TreeSet&lt;&gt;(Bytes.BYTES_RAWCOMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>        for (ByteString cf: request.getFamilyList()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>          columnFamilies.add(cf.toByteArray());<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        }<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>      }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      int nCF = columnFamilies.size();<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>      List&lt;String&gt;  fileList = region.getStoreFileList(<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>        columnFamilies.toArray(new byte[nCF][]));<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      GetStoreFileResponse.Builder builder = GetStoreFileResponse.newBuilder();<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      builder.addAllStoreFile(fileList);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      return builder.build();<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    } catch (IOException ie) {<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      throw new ServiceException(ie);<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>    }<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  }<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span><a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>  /**<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>   * Open asynchronously a region or a set of regions on the region server.<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>   *<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>   * The opening is coordinated by ZooKeeper, and this method requires the znode to be created<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>   *  before being called. As a consequence, this method should be called only from the master.<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>   * &lt;p&gt;<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>   * Different manages states for the region are:<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>   * &lt;/p&gt;&lt;ul&gt;<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>   *  &lt;li&gt;region not opened: the region opening will start asynchronously.&lt;/li&gt;<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>   *  &lt;li&gt;a close is already in progress: this is considered as an error.&lt;/li&gt;<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>   *  &lt;li&gt;an open is already in progress: this new open request will be ignored. This is important<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>   *  because the Master can do multiple requests if it crashes.&lt;/li&gt;<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>   *  &lt;li&gt;the region is already opened:  this new open request will be ignored.&lt;/li&gt;<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>   *  &lt;/ul&gt;<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * &lt;p&gt;<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * Bulk assign: If there are more than 1 region to open, it will be considered as a bulk assign.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   * For a single region opening, errors are sent through a ServiceException. For bulk assign,<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>   * errors are put in the response as FAILED_OPENING.<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>   * &lt;/p&gt;<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>   * @param controller the RPC controller<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>   * @param request the request<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>   * @throws ServiceException<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>   */<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>  @Override<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  public OpenRegionResponse openRegion(final RpcController controller,<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>      final OpenRegionRequest request) throws ServiceException {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    requestCount.increment();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    if (request.hasServerStartCode()) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>      // check that we are the same server that this RPC is intended for.<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>      long serverStartCode = request.getServerStartCode();<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>      if (regionServer.serverName.getStartcode() !=  serverStartCode) {<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        throw new ServiceException(new DoNotRetryIOException("This RPC was intended for a " +<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>            "different server with startCode: " + serverStartCode + ", this server is: "<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>            + regionServer.serverName));<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>    }<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>    OpenRegionResponse.Builder builder = OpenRegionResponse.newBuilder();<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>    final int regionCount = request.getOpenInfoCount();<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>    final Map&lt;TableName, HTableDescriptor&gt; htds = new HashMap&lt;&gt;(regionCount);<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>    final boolean isBulkAssign = regionCount &gt; 1;<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>    try {<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      checkOpen();<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    } catch (IOException ie) {<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      TableName tableName = null;<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>      if (regionCount == 1) {<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>        RegionInfo ri = request.getOpenInfo(0).getRegion();<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>        if (ri != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>          tableName = ProtobufUtil.toTableName(ri.getTableName());<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        }<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (!TableName.META_TABLE_NAME.equals(tableName)) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        throw new ServiceException(ie);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      // We are assigning meta, wait a little for regionserver to finish initialization.<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>      int timeout = regionServer.conf.getInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>        HConstants.DEFAULT_HBASE_RPC_TIMEOUT) &gt;&gt; 2; // Quarter of RPC timeout<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      long endTime = System.currentTimeMillis() + timeout;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      synchronized (regionServer.online) {<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>        try {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>          while (System.currentTimeMillis() &lt;= endTime<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              &amp;&amp; !regionServer.isStopped() &amp;&amp; !regionServer.isOnline()) {<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            regionServer.online.wait(regionServer.msgInterval);<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>          }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>          checkOpen();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>        } catch (InterruptedException t) {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>          Thread.currentThread().interrupt();<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>          throw new ServiceException(t);<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>        } catch (IOException e) {<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>          throw new ServiceException(e);<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        }<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>      }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>    }<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span><a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>    long masterSystemTime = request.hasMasterSystemTime() ? request.getMasterSystemTime() : -1;<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span><a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>    for (RegionOpenInfo regionOpenInfo : request.getOpenInfoList()) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      final HRegionInfo region = HRegionInfo.convert(regionOpenInfo.getRegion());<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>      HTableDescriptor htd;<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      try {<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        String encodedName = region.getEncodedName();<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>        byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>        final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        if (onlineRegion != null) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          // The region is already online. This should not happen any more.<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>          String error = "Received OPEN for the region:"<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>            + region.getRegionNameAsString() + ", which is already online";<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>          regionServer.abort(error);<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          throw new IOException(error);<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>        }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>        LOG.info("Open " + region.getRegionNameAsString());<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span><a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>        final Boolean previous = regionServer.regionsInTransitionInRS.putIfAbsent(<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>          encodedNameBytes, Boolean.TRUE);<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (Boolean.FALSE.equals(previous)) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          if (regionServer.getFromOnlineRegions(encodedName) != null) {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>            // There is a close in progress. This should not happen any more.<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>            String error = "Received OPEN for the region:"<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>              + region.getRegionNameAsString() + ", which we are already trying to CLOSE";<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>            regionServer.abort(error);<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>            throw new IOException(error);<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          }<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>          regionServer.regionsInTransitionInRS.put(encodedNameBytes, Boolean.TRUE);<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>        }<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span><a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        if (Boolean.TRUE.equals(previous)) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>          // An open is in progress. This is supported, but let's log this.<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>          LOG.info("Receiving OPEN for the region:" +<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            region.getRegionNameAsString() + ", which we are already trying to OPEN"<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>              + " - ignoring this new request for this region.");<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>        }<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span><a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        // We are opening this region. If it moves back and forth for whatever reason, we don't<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        // want to keep returning the stale moved record while we are opening/if we close again.<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        regionServer.removeFromMovedRegions(region.getEncodedName());<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>        if (previous == null || !previous.booleanValue()) {<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          // check if the region to be opened is marked in recovering state in ZK<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>          if (ZKSplitLog.isRegionMarkedRecoveringInZK(regionServer.getZooKeeper(),<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>              region.getEncodedName())) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            // Check if current region open is for distributedLogReplay. This check is to support<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>            // rolling restart/upgrade where we want to Master/RS see same configuration<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>            if (!regionOpenInfo.hasOpenForDistributedLogReplay()<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>                  || regionOpenInfo.getOpenForDistributedLogReplay()) {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>              regionServer.recoveringRegions.put(region.getEncodedName(), null);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>            } else {<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>              // Remove stale recovery region from ZK when we open region not for recovering which<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>              // could happen when turn distributedLogReplay off from on.<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              List&lt;String&gt; tmpRegions = new ArrayList&lt;&gt;();<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>              tmpRegions.add(region.getEncodedName());<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>              ZKSplitLog.deleteRecoveringRegionZNodes(regionServer.getZooKeeper(),<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>                tmpRegions);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>            }<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          }<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>          htd = htds.get(region.getTable());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>          if (htd == null) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>            htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            htds.put(region.getTable(), htd);<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>          }<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>          if (htd == null) {<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>            throw new IOException("Missing table descriptor for " + region.getEncodedName());<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>          }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>          // If there is no action in progress, we can submit a specific handler.<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          // Need to pass the expected version in the constructor.<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>          if (region.isMetaRegion()) {<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>            regionServer.service.submit(new OpenMetaHandler(<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>              regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>          } else {<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>            if (regionOpenInfo.getFavoredNodesCount() &gt; 0) {<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>              regionServer.updateRegionFavoredNodesMapping(region.getEncodedName(),<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>                  regionOpenInfo.getFavoredNodesList());<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>            }<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>            if (htd.getPriority() &gt;= HConstants.ADMIN_QOS || region.getTable().isSystemTable()) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>              regionServer.service.submit(new OpenPriorityRegionHandler(<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>            } else {<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>              regionServer.service.submit(new OpenRegionHandler(<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>                regionServer, regionServer, region, htd, masterSystemTime));<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>            }<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          }<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span><a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>        builder.addOpeningState(RegionOpeningState.OPENED);<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>      } catch (KeeperException zooKeeperEx) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>        LOG.error("Can't retrieve recovering state from zookeeper", zooKeeperEx);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>        throw new ServiceException(zooKeeperEx);<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>      } catch (IOException ie) {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>        LOG.warn("Failed opening region " + region.getRegionNameAsString(), ie);<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>        if (isBulkAssign) {<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>          builder.addOpeningState(RegionOpeningState.FAILED_OPENING);<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>        } else {<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>          throw new ServiceException(ie);<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>        }<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>      }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    return builder.build();<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  }<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span><a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>  /**<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   *  Wamrmup a region on this server.<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>   *<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>   * This method should only be called by Master. It synchrnously opens the region and<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>   * closes the region bringing the most important pages in cache.<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>   * &lt;p&gt;<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>   *<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>   * @param controller the RPC controller<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>   * @param request the request<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>   * @throws ServiceException<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>   */<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>  @Override<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>  public WarmupRegionResponse warmupRegion(final RpcController controller,<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>      final WarmupRegionRequest request) throws ServiceException {<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    RegionInfo regionInfo = request.getRegionInfo();<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>    final HRegionInfo region = HRegionInfo.convert(regionInfo);<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>    HTableDescriptor htd;<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    WarmupRegionResponse response = WarmupRegionResponse.getDefaultInstance();<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span><a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>    try {<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>      checkOpen();<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>      String encodedName = region.getEncodedName();<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>      byte[] encodedNameBytes = region.getEncodedNameAsBytes();<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>      final Region onlineRegion = regionServer.getFromOnlineRegions(encodedName);<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span><a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>      if (onlineRegion != null) {<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        LOG.info("Region already online. Skipping warming up " + region);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>        return response;<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>      }<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span><a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      if (LOG.isDebugEnabled()) {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        LOG.debug("Warming up Region " + region.getRegionNameAsString());<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span><a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>      htd = regionServer.tableDescriptors.get(region.getTable());<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>      if (regionServer.getRegionsInTransitionInRS().containsKey(encodedNameBytes)) {<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>        LOG.info("Region is in transition. Skipping warmup " + region);<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>        return response;<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span><a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>      HRegion.warmupHRegion(region, htd, regionServer.getWAL(region),<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>          regionServer.getConfiguration(), regionServer, null);<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span><a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    } catch (IOException ie) {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>      LOG.error("Failed warming up region " + region.getRegionNameAsString(), ie);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>      throw new ServiceException(ie);<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>    }<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span><a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    return response;<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>  }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>  /**<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>   * Replay the given changes when distributedLogReplay WAL edits from a failed RS. The guarantee is<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>   * that the given mutations will be durable on the receiving RS if this method returns without any<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>   * exception.<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>   * @param controller the RPC controller<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>   * @param request the request<a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>   * @throws ServiceException<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>   */<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  @Override<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  @QosPriority(priority = HConstants.REPLAY_QOS)<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  public ReplicateWALEntryResponse replay(final RpcController controller,<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    CellScanner cells = ((HBaseRpcController) controller).cellScanner();<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    try {<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>      checkOpen();<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>      List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      if (entries == null || entries.isEmpty()) {<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>        // empty input<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>      }<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>      ByteString regionName = entries.get(0).getKey().getEncodedRegionName();<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>      Region region = regionServer.getRegionByEncodedName(regionName.toStringUtf8());<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>      RegionCoprocessorHost coprocessorHost =<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>          ServerRegionReplicaUtil.isDefaultReplica(region.getRegionInfo())<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>            ? region.getCoprocessorHost()<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>            : null; // do not invoke coprocessors if this is a secondary region replica<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>      List&lt;Pair&lt;WALKey, WALEdit&gt;&gt; walEntries = new ArrayList&lt;&gt;();<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span><a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      // Skip adding the edits to WAL if this is a secondary region replica<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>      boolean isPrimary = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>      Durability durability = isPrimary ? Durability.USE_DEFAULT : Durability.SKIP_WAL;<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span><a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>      for (WALEntry entry : entries) {<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>        if (!regionName.equals(entry.getKey().getEncodedRegionName())) {<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>          throw new NotServingRegionException("Replay request contains entries from multiple " +<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>              "regions. First region:" + regionName.toStringUtf8() + " , other region:"<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>              + entry.getKey().getEncodedRegionName());<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        }<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        if (regionServer.nonceManager != null &amp;&amp; isPrimary) {<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>          long nonceGroup = entry.getKey().hasNonceGroup()<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>            ? entry.getKey().getNonceGroup() : HConstants.NO_NONCE;<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>          long nonce = entry.getKey().hasNonce() ? entry.getKey().getNonce() : HConstants.NO_NONCE;<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>          regionServer.nonceManager.reportOperationFromWal(<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>              nonceGroup,<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>              nonce,<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span>              entry.getKey().getWriteTime());<a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>        }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>        Pair&lt;WALKey, WALEdit&gt; walEntry = (coprocessorHost == null) ? null : new Pair&lt;&gt;();<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>        List&lt;WALSplitter.MutationReplay&gt; edits = WALSplitter.getMutationsFromWALEntry(entry,<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          cells, walEntry, durability);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        if (coprocessorHost != null) {<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>          // Start coprocessor replay here. The coprocessor is for each WALEdit instead of a<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>          // KeyValue.<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          if (coprocessorHost.preWALRestore(region.getRegionInfo(), walEntry.getFirst(),<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>            walEntry.getSecond())) {<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>            // if bypass this log entry, ignore it ...<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>            continue;<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>          }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>          walEntries.add(walEntry);<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>        }<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>        if(edits!=null &amp;&amp; !edits.isEmpty()) {<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>          long replaySeqId = (entry.getKey().hasOrigSequenceNumber()) ?<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>            entry.getKey().getOrigSequenceNumber() : entry.getKey().getLogSequenceNumber();<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>          OperationStatus[] result = doReplayBatchOp(region, edits, replaySeqId);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>          // check if it's a partial success<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>          for (int i = 0; result != null &amp;&amp; i &lt; result.length; i++) {<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>            if (result[i] != OperationStatus.SUCCESS) {<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>              throw new IOException(result[i].getExceptionMsg());<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>            }<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>          }<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>        }<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      }<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span><a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      //sync wal at the end because ASYNC_WAL is used above<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      WAL wal = getWAL(region);<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      if (wal != null) {<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>        wal.sync();<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      }<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      if (coprocessorHost != null) {<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>        for (Pair&lt;WALKey, WALEdit&gt; entry : walEntries) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>          coprocessorHost.postWALRestore(region.getRegionInfo(), entry.getFirst(),<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>            entry.getSecond());<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        }<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>      }<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      return ReplicateWALEntryResponse.newBuilder().build();<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    } catch (IOException ie) {<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      throw new ServiceException(ie);<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    } finally {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>        regionServer.metricsRegionServer.updateReplay(<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      }<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>  }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span><a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>  WAL getWAL(Region region) {<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    return ((HRegion)region).getWAL();<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>  }<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  /**<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>   * Replicate WAL entries on the region server.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>   *<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>   * @param controller the RPC controller<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>   * @param request the request<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>   * @throws ServiceException<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>   */<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>  @Override<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>  @QosPriority(priority=HConstants.REPLICATION_QOS)<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>  public ReplicateWALEntryResponse replicateWALEntry(final RpcController controller,<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      final ReplicateWALEntryRequest request) throws ServiceException {<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    try {<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span>      checkOpen();<a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>      if (regionServer.replicationSinkHandler != null) {<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        requestCount.increment();<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>        List&lt;WALEntry&gt; entries = request.getEntryList();<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>        CellScanner cellScanner = ((HBaseRpcController)controller).cellScanner();<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        regionServer.getRegionServerCoprocessorHost().preReplicateLogEntries(entries, cellScanner);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>        regionServer.replicationSinkHandler.replicateLogEntries(entries, cellScanner,<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>          request.getReplicationClusterId(), request.getSourceBaseNamespaceDirPath(),<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>          request.getSourceHFileArchiveDirPath());<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        regionServer.getRegionServerCoprocessorHost().postReplicateLogEntries(entries, cellScanner);<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        return ReplicateWALEntryResponse.newBuilder().build();<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>      } else {<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        throw new ServiceException("Replication services are not initialized yet");<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>      }<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>    } catch (IOException ie) {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>      throw new ServiceException(ie);<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>    }<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>  }<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>  /**<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>   * Roll the WAL writer of the region server.<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>   * @param controller the RPC controller<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>   * @param request the request<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>   * @throws ServiceException<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>   */<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>  @Override<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>  public RollWALWriterResponse rollWALWriter(final RpcController controller,<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>      final RollWALWriterRequest request) throws ServiceException {<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>    try {<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>      checkOpen();<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>      requestCount.increment();<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>      regionServer.getRegionServerCoprocessorHost().preRollWALWriterRequest();<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      regionServer.walRoller.requestRollAll();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>      regionServer.getRegionServerCoprocessorHost().postRollWALWriterRequest();<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span>      RollWALWriterResponse.Builder builder = RollWALWriterResponse.newBuilder();<a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>      return builder.build();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    } catch (IOException ie) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new ServiceException(ie);<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>    }<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>  }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>  /**<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span>   * Split a region on the region server.<a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>   *<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>   * @param controller the RPC controller<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>   * @param request the request<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>   * @throws ServiceException<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>   */<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>  @Override<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>  public SplitRegionResponse splitRegion(final RpcController controller,<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>      final SplitRegionRequest request) throws ServiceException {<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span>    try {<a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>      checkOpen();<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>      requestCount.increment();<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>      Region region = getRegion(request.getRegion());<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>      region.startRegionOperation(Operation.SPLIT_REGION);<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>      if (region.getRegionInfo().getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>        throw new IOException("Can't split replicas directly. "<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>            + "Replicas are auto-split when their primary is split.");<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>      }<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>      LOG.info("Splitting " + region.getRegionInfo().getRegionNameAsString());<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      region.flush(true);<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>      byte[] splitPoint = null;<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>      if (request.hasSplitPoint()) {<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>        splitPoint = request.getSplitPoint().toByteArray();<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      }<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>      ((HRegion)region).forceSplit(splitPoint);<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span>      regionServer.compactSplitThread.requestSplit(region, ((HRegion)region).checkSplit(),<a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>        RpcServer.getRequestUser());<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>      return SplitRegionResponse.newBuilder().build();<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    } catch (DroppedSnapshotException ex) {<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>      regionServer.abort("Replay of WAL required. Forcing server shutdown", ex);<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      throw new ServiceException(ex);<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span>    } catch (IOException ie) {<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>      throw new ServiceException(ie);<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>    }<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>  }<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span><a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>  /**<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>   * Stop the region server.<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>   *<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>   * @param controller the RPC controller<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>   * @param request the request<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>   * @throws ServiceException<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>   */<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>  @Override<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>  @QosPriority(priority=HConstants.ADMIN_QOS)<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>  public StopServerResponse stopServer(final RpcController controller,<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>      final StopServerRequest request) throws ServiceException {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>    requestCount.increment();<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    String reason = request.getReason();<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    regionServer.stop(reason);<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>    return StopServerResponse.newBuilder().build();<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>  }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>  @Override<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>  public UpdateFavoredNodesResponse updateFavoredNodes(RpcController controller,<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      UpdateFavoredNodesRequest request) throws ServiceException {<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    List&lt;UpdateFavoredNodesRequest.RegionUpdateInfo&gt; openInfoList = request.getUpdateInfoList();<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>    UpdateFavoredNodesResponse.Builder respBuilder = UpdateFavoredNodesResponse.newBuilder();<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>    for (UpdateFavoredNodesRequest.RegionUpdateInfo regionUpdateInfo : openInfoList) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>      HRegionInfo hri = HRegionInfo.convert(regionUpdateInfo.getRegion());<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>      if (regionUpdateInfo.getFavoredNodesCount() &gt; 0) {<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>        regionServer.updateRegionFavoredNodesMapping(hri.getEncodedName(),<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>          regionUpdateInfo.getFavoredNodesList());<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>      }<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>    }<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>    respBuilder.setResponse(openInfoList.size());<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>    return respBuilder.build();<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>  }<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span><a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>  /**<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>   * Atomically bulk load several HFiles into an open region<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>   * @return true if successful, false is failed but recoverably (no action)<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>   * @throws ServiceException if failed unrecoverably<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>   */<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>  @Override<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>  public BulkLoadHFileResponse bulkLoadHFile(final RpcController controller,<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>      final BulkLoadHFileRequest request) throws ServiceException {<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>    long start = EnvironmentEdgeManager.currentTime();<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    try {<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>      checkOpen();<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      requestCount.increment();<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      Region region = getRegion(request.getRegion());<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      boolean bypass = false;<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      boolean loaded = false;<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>      Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span><a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (!request.hasBulkToken()) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        // Old style bulk load. This will not be supported in future releases<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        List&lt;Pair&lt;byte[], String&gt;&gt; familyPaths = new ArrayList&lt;&gt;(request.getFamilyPathCount());<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>        for (FamilyPath familyPath : request.getFamilyPathList()) {<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>          familyPaths.add(new Pair&lt;&gt;(familyPath.getFamily().toByteArray(), familyPath.getPath()));<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>        }<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>        if (region.getCoprocessorHost() != null) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>          bypass = region.getCoprocessorHost().preBulkLoadHFile(familyPaths);<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>        }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>        try {<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span>          if (!bypass) {<a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>            map = region.bulkLoadHFiles(familyPaths, request.getAssignSeqNum(), null,<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>                request.getCopyFile());<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>            if (map != null) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>              loaded = true;<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>            }<a name="line.2148"></a>
-<span class="sourceLineNo">2149</span>          }<a name="line.2149"></a>
-<span class="sourceLineNo">2150</span>        } finally {<a 

<TRUNCATED>

[22/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/conf/class-use/ConfigurationObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/conf/class-use/ConfigurationObserver.html b/devapidocs/org/apache/hadoop/hbase/conf/class-use/ConfigurationObserver.html
index b6beabb..c501a78 100644
--- a/devapidocs/org/apache/hadoop/hbase/conf/class-use/ConfigurationObserver.html
+++ b/devapidocs/org/apache/hadoop/hbase/conf/class-use/ConfigurationObserver.html
@@ -105,14 +105,18 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.cleaner">org.apache.hadoop.hbase.master.cleaner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rsgroup">org.apache.hadoop.hbase.rsgroup</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -309,6 +313,27 @@
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.master.cleaner">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a> in <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/package-summary.html">org.apache.hadoop.hbase.master.cleaner</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/package-summary.html">org.apache.hadoop.hbase.master.cleaner</a> that implement <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></span></code>
+<div class="block">This Chore, every time it runs, will clear the HFiles in the hfile archive
+ folder that are deletable for each HFile cleaner in the chain.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.master.procedure">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/org/apache/hadoop/hbase/conf/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/conf/package-use.html b/devapidocs/org/apache/hadoop/hbase/conf/package-use.html
index ec06f45..52b0f3c 100644
--- a/devapidocs/org/apache/hadoop/hbase/conf/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/conf/package-use.html
@@ -105,14 +105,18 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.cleaner">org.apache.hadoop.hbase.master.cleaner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.master.procedure">org.apache.hadoop.hbase.master.procedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hadoop.hbase.rsgroup">org.apache.hadoop.hbase.rsgroup</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -222,6 +226,25 @@
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.master.cleaner">
+<!--   -->
+</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/conf/package-summary.html">org.apache.hadoop.hbase.conf</a> used by <a href="../../../../../org/apache/hadoop/hbase/master/cleaner/package-summary.html">org.apache.hadoop.hbase.master.cleaner</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/conf/class-use/ConfigurationObserver.html#org.apache.hadoop.hbase.master.cleaner">ConfigurationObserver</a>
+<div class="block">Every class that wants to observe changes in Configuration properties,
+ must implement interface (and also, register itself with the
+ <code>ConfigurationManager</code> object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.master.procedure">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 96f0b14..98fe2a3 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 20fa793..40120b2 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -175,14 +175,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 d7edef5..5435554 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,11 +273,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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/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/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/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.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>
+<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/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
 </ul>
 </li>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 1808e5f..ed8816b 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -281,10 +281,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>


[03/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html b/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html
index a8b6dd2..b5d2333 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":10};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":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";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.51">TestHFileCleaner</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.54">TestHFileCleaner</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -189,27 +189,46 @@ extends <a href="http://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>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#createFilesForTesting-int-int-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">createFilesForTesting</a></span>(int&nbsp;largeFileNum,
+                     int&nbsp;smallFileNum,
+                     org.apache.hadoop.fs.FileSystem&nbsp;fs,
+                     org.apache.hadoop.fs.Path&nbsp;archivedHfileDir)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#getFileStats-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.FileSystem-">getFileStats</a></span>(org.apache.hadoop.fs.Path&nbsp;file,
             org.apache.hadoop.fs.FileSystem&nbsp;fs)</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#setupCluster--">setupCluster</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#shutdownCluster--">shutdownCluster</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testHFileCleaning--">testHFileCleaning</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testLargeSmallIsolation--">testLargeSmallIsolation</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testOnConfigurationChange--">testOnConfigurationChange</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testRemovesEmptyDirectories--">testRemovesEmptyDirectories</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testThreadCleanup--">testThreadCleanup</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testTTLCleaner--">testTTLCleaner</a></span>()</code>&nbsp;</td>
 </tr>
@@ -241,7 +260,7 @@ extends <a href="http://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.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.52">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.55">LOG</a></pre>
 </li>
 </ul>
 <a name="UTIL">
@@ -250,7 +269,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>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/master/cleaner/TestHFileCleaner.html#line.54">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/master/cleaner/TestHFileCleaner.html#line.57">UTIL</a></pre>
 </li>
 </ul>
 </li>
@@ -267,7 +286,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestHFileCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.51">TestHFileCleaner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.54">TestHFileCleaner</a>()</pre>
 </li>
 </ul>
 </li>
@@ -284,7 +303,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setupCluster</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.57">setupCluster</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.60">setupCluster</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -298,7 +317,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdownCluster</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.63">shutdownCluster</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.66">shutdownCluster</a>()
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -312,7 +331,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testTTLCleaner</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.68">testTTLCleaner</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.71">testTTLCleaner</a>()
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -328,7 +347,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileStats</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.89">getFileStats</a>(org.apache.hadoop.fs.Path&nbsp;file,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.92">getFileStats</a>(org.apache.hadoop.fs.Path&nbsp;file,
                             org.apache.hadoop.fs.FileSystem&nbsp;fs)
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -347,7 +366,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testHFileCleaning</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.96">testHFileCleaning</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.99">testHFileCleaning</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -358,10 +377,10 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <a name="testRemovesEmptyDirectories--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testRemovesEmptyDirectories</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.166">testRemovesEmptyDirectories</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.169">testRemovesEmptyDirectories</a>()
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -369,6 +388,65 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="testThreadCleanup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testThreadCleanup</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.268">testThreadCleanup</a>()
+                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testLargeSmallIsolation--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testLargeSmallIsolation</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.295">testLargeSmallIsolation</a>()
+                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testOnConfigurationChange--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testOnConfigurationChange</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.322">testOnConfigurationChange</a>()
+                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createFilesForTesting-int-int-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createFilesForTesting</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.392">createFilesForTesting</a>(int&nbsp;largeFileNum,
+                                   int&nbsp;smallFileNum,
+                                   org.apache.hadoop.fs.FileSystem&nbsp;fs,
+                                   org.apache.hadoop.fs.Path&nbsp;archivedHfileDir)
+                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 d85a08d..8e3e80a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -546,13 +546,13 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/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/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/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 </ul>
 </li>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/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 0aed951..be69fcd 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="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/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/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 </ul>
 </li>
 </ul>


[04/25] hbase-site git commit: Published site at 9facfa550f1e7386be3a04d84f7e8013f5002965.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index bb7b44b..e6603db 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -70,13 +70,13 @@
 <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>  private final HMaster master;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private final ServerManager serverManager;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private final String filter;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private final boolean catalogJanitorEnabled;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private final Map&lt;String,Integer&gt; frags;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private final AssignmentManager assignmentManager;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private final String format;<a name="line.71"></a>
+<span class="sourceLineNo">065</span>  private final String filter;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private final String format;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private final AssignmentManager assignmentManager;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private final boolean catalogJanitorEnabled;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private final ServerManager serverManager;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  private final Map&lt;String,Integer&gt; frags;<a name="line.71"></a>
 <span class="sourceLineNo">072</span>  private final ServerName metaLocation;<a name="line.72"></a>
 <span class="sourceLineNo">073</span>  private final List&lt;ServerName&gt; servers;<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  // 69, 1<a name="line.74"></a>
@@ -108,33 +108,33 @@
 <span class="sourceLineNo">100</span><a name="line.100"></a>
 <span class="sourceLineNo">101</span>  protected static org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)<a name="line.101"></a>
 <span class="sourceLineNo">102</span>  {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.103"></a>
+<span class="sourceLineNo">103</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      p_implData.setServerManager(null);<a name="line.105"></a>
+<span class="sourceLineNo">105</span>      p_implData.setFilter("general");<a name="line.105"></a>
 <span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.107"></a>
+<span class="sourceLineNo">107</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      p_implData.setFilter("general");<a name="line.109"></a>
+<span class="sourceLineNo">109</span>      p_implData.setDeadServers(null);<a name="line.109"></a>
 <span class="sourceLineNo">110</span>    }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      p_implData.setCatalogJanitorEnabled(true);<a name="line.113"></a>
+<span class="sourceLineNo">113</span>      p_implData.setFormat("html");<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    }<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    if(! p_implData.getFrags__IsNotDefault())<a name="line.115"></a>
+<span class="sourceLineNo">115</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      p_implData.setFrags(null);<a name="line.117"></a>
+<span class="sourceLineNo">117</span>      p_implData.setAssignmentManager(null);<a name="line.117"></a>
 <span class="sourceLineNo">118</span>    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.119"></a>
+<span class="sourceLineNo">119</span>    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())<a name="line.119"></a>
 <span class="sourceLineNo">120</span>    {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      p_implData.setDeadServers(null);<a name="line.121"></a>
+<span class="sourceLineNo">121</span>      p_implData.setCatalogJanitorEnabled(true);<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.123"></a>
+<span class="sourceLineNo">123</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      p_implData.setAssignmentManager(null);<a name="line.125"></a>
+<span class="sourceLineNo">125</span>      p_implData.setServerManager(null);<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    }<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.127"></a>
+<span class="sourceLineNo">127</span>    if(! p_implData.getFrags__IsNotDefault())<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      p_implData.setFormat("html");<a name="line.129"></a>
+<span class="sourceLineNo">129</span>      p_implData.setFrags(null);<a name="line.129"></a>
 <span class="sourceLineNo">130</span>    }<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
@@ -150,13 +150,13 @@
 <span class="sourceLineNo">142</span>  {<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.143"></a>
 <span class="sourceLineNo">144</span>    master = p_implData.getMaster();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    serverManager = p_implData.getServerManager();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    filter = p_implData.getFilter();<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    frags = p_implData.getFrags();<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    deadServers = p_implData.getDeadServers();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    format = p_implData.getFormat();<a name="line.151"></a>
+<span class="sourceLineNo">145</span>    filter = p_implData.getFilter();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    deadServers = p_implData.getDeadServers();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    format = p_implData.getFormat();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    serverManager = p_implData.getServerManager();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    frags = p_implData.getFrags();<a name="line.151"></a>
 <span class="sourceLineNo">152</span>    metaLocation = p_implData.getMetaLocation();<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    servers = p_implData.getServers();<a name="line.153"></a>
 <span class="sourceLineNo">154</span>  }<a name="line.154"></a>
@@ -172,8 +172,8 @@
 <span class="sourceLineNo">164</span>      // 61, 3<a name="line.164"></a>
 <span class="sourceLineNo">165</span>      {<a name="line.165"></a>
 <span class="sourceLineNo">166</span>        org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_0 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        __jamon__var_0.setFilter(filter);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        __jamon__var_0.setFormat("json" );<a name="line.168"></a>
+<span class="sourceLineNo">167</span>        __jamon__var_0.setFormat("json" );<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        __jamon__var_0.setFilter(filter);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>        __jamon__var_0.renderNoFlush(jamonWriter);<a name="line.169"></a>
 <span class="sourceLineNo">170</span>      }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>      // 61, 68<a name="line.171"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index b714fcf..39f7e50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,74 +77,74 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 23, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcn(String bcn)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 21, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setFilter(String filter)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 23, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcn = bcn;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcn__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 21, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_filter = filter;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_filter__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcn()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getFilter()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcn;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_filter;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcn;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcn__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_filter;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getFilter__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcn__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_filter__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcn__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">088</span>    private boolean m_filter__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 21, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_filter = filter;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_filter__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getFilter()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_filter;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_filter;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getFilter__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 24, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setBcv(String bcv)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 22, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setFormat(String format)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 24, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_bcv = bcv;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_bcv__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 22, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_format = format;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_format__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getBcv()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getFormat()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_bcv;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_format;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_bcv;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getBcv__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_format;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getFormat__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_bcv__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_format__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_bcv__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_format__IsNotDefault;<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>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,31 +156,31 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<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>  protected String bcn;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String filter;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcn(p_bcn);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setFilter(p_filter);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<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>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<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>  protected String filter;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setFilter(p_filter);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<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>  protected String bcv;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String format;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setBcv(p_bcv);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setFormat(p_format);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
index b714fcf..39f7e50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,74 +77,74 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 23, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcn(String bcn)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 21, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setFilter(String filter)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 23, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcn = bcn;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcn__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 21, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_filter = filter;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_filter__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcn()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getFilter()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcn;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_filter;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcn;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcn__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_filter;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getFilter__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcn__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_filter__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcn__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">088</span>    private boolean m_filter__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 21, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_filter = filter;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_filter__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getFilter()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_filter;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_filter;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getFilter__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 24, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setBcv(String bcv)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 22, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setFormat(String format)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 24, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_bcv = bcv;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_bcv__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 22, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_format = format;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_format__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getBcv()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getFormat()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_bcv;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_format;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_bcv;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getBcv__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_format;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getFormat__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_bcv__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_format__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_bcv__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_format__IsNotDefault;<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>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,31 +156,31 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<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>  protected String bcn;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String filter;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcn(p_bcn);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setFilter(p_filter);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<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>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<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>  protected String filter;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setFilter(p_filter);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<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>  protected String bcv;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String format;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setBcv(p_bcv);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setFormat(p_format);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index b714fcf..39f7e50 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,74 +77,74 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 23, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcn(String bcn)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 21, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setFilter(String filter)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 23, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcn = bcn;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcn__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 21, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_filter = filter;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_filter__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcn()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getFilter()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcn;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_filter;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcn;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcn__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_filter;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getFilter__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcn__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_filter__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcn__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
+<span class="sourceLineNo">088</span>    private boolean m_filter__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 22, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_format = format;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_format__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getFormat()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_format;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_format;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getFormat__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 21, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_filter = filter;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_filter__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getFilter()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_filter;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_filter;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getFilter__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 24, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setBcv(String bcv)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 22, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setFormat(String format)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 24, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_bcv = bcv;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_bcv__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 22, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_format = format;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_format__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getBcv()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getFormat()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_bcv;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_format;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_bcv;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getBcv__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_format;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getFormat__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_bcv__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_format__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_bcv__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_format__IsNotDefault;<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>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,31 +156,31 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<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>  protected String bcn;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String filter;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcn(p_bcn);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setFilter(p_filter);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<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>  protected String format;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setFormat(p_format);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<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>  protected String filter;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setFilter(p_filter);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<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>  protected String bcv;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String format;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setBcv(p_bcv);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setFormat(p_format);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index e8a5edb..c5c8c04 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -34,27 +34,27 @@
 <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>  private final HRegionServer regionServer;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>  private final String bcn;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>  private final String format;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>  private final String filter;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>  private final String bcv;<a name="line.32"></a>
+<span class="sourceLineNo">029</span>  private final String filter;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  private final String bcn;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>  private final String bcv;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  private final String format;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  protected static org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)<a name="line.33"></a>
 <span class="sourceLineNo">034</span>  {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.35"></a>
+<span class="sourceLineNo">035</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.35"></a>
 <span class="sourceLineNo">036</span>    {<a name="line.36"></a>
-<span class="sourceLineNo">037</span>      p_implData.setBcn("");<a name="line.37"></a>
+<span class="sourceLineNo">037</span>      p_implData.setFilter("general");<a name="line.37"></a>
 <span class="sourceLineNo">038</span>    }<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.39"></a>
+<span class="sourceLineNo">039</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.39"></a>
 <span class="sourceLineNo">040</span>    {<a name="line.40"></a>
-<span class="sourceLineNo">041</span>      p_implData.setFormat("html");<a name="line.41"></a>
+<span class="sourceLineNo">041</span>      p_implData.setBcn("");<a name="line.41"></a>
 <span class="sourceLineNo">042</span>    }<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.43"></a>
+<span class="sourceLineNo">043</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.43"></a>
 <span class="sourceLineNo">044</span>    {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      p_implData.setFilter("general");<a name="line.45"></a>
+<span class="sourceLineNo">045</span>      p_implData.setBcv("");<a name="line.45"></a>
 <span class="sourceLineNo">046</span>    }<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.47"></a>
+<span class="sourceLineNo">047</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.47"></a>
 <span class="sourceLineNo">048</span>    {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>      p_implData.setBcv("");<a name="line.49"></a>
+<span class="sourceLineNo">049</span>      p_implData.setFormat("html");<a name="line.49"></a>
 <span class="sourceLineNo">050</span>    }<a name="line.50"></a>
 <span class="sourceLineNo">051</span>    return p_implData;<a name="line.51"></a>
 <span class="sourceLineNo">052</span>  }<a name="line.52"></a>
@@ -62,10 +62,10 @@
 <span class="sourceLineNo">054</span>  {<a name="line.54"></a>
 <span class="sourceLineNo">055</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.55"></a>
 <span class="sourceLineNo">056</span>    regionServer = p_implData.getRegionServer();<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    bcn = p_implData.getBcn();<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    format = p_implData.getFormat();<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    filter = p_implData.getFilter();<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    bcv = p_implData.getBcv();<a name="line.60"></a>
+<span class="sourceLineNo">057</span>    filter = p_implData.getFilter();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    bcn = p_implData.getBcn();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    bcv = p_implData.getBcv();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    format = p_implData.getFormat();<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>  @Override public void renderNoFlush(final java.io.Writer jamonWriter)<a name="line.63"></a>
@@ -94,8 +94,8 @@
 <span class="sourceLineNo">086</span>      // 41, 3<a name="line.86"></a>
 <span class="sourceLineNo">087</span>      {<a name="line.87"></a>
 <span class="sourceLineNo">088</span>        org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl __jamon__var_7 = new org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl(this.getTemplateManager());<a name="line.88"></a>
-<span class="sourceLineNo">089</span>        __jamon__var_7.setFilter(filter);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        __jamon__var_7.setFormat("json" );<a name="line.90"></a>
+<span class="sourceLineNo">089</span>        __jamon__var_7.setFormat("json" );<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        __jamon__var_7.setFilter(filter);<a name="line.90"></a>
 <span class="sourceLineNo">091</span>        __jamon__var_7.renderNoFlush(jamonWriter);<a name="line.91"></a>
 <span class="sourceLineNo">092</span>      }<a name="line.92"></a>
 <span class="sourceLineNo">093</span>      // 41, 68<a name="line.93"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependencies.html b/hbase-spark/dependencies.html
index 2c241b8..1d495a1 100644
--- a/hbase-spark/dependencies.html
+++ b/hbase-spark/dependencies.html
@@ -5674,7 +5674,7 @@ The following provides more details on the included cryptographic software:
 <td>compile: 1</td></tr>
 <tr class="b">
 <td>test: 17</td>
-<td>test: 25.68 MB</td>
+<td>test: 25.69 MB</td>
 <td>test: 6,273</td>
 <td>test: 5,650</td>
 <td>test: 152</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 73f182f..f456201 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -6145,6 +6145,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/TestWALMethods.html#createFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-">createFile(FileSystem, Path, String)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/TestWALMethods.html" title="class in org.apache.hadoop.hbase.wal">TestWALMethods</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#createFilesForTesting-int-int-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">createFilesForTesting(int, int, FileSystem, Path)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestHFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/TestTableScan.CustomFilter.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments(ArrayList&lt;byte[]&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestTableScan.CustomFilter.html" title="class in org.apache.hadoop.hbase.rest">TestTableScan.CustomFilter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/TestHFile.html#createFSOutput-org.apache.hadoop.fs.Path-">createFSOutput(Path)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/TestHFile.html" title="class in org.apache.hadoop.hbase.io.hfile">TestHFile</a></dt>
@@ -44142,6 +44144,8 @@
 <dd>
 <div class="block">During compaction, the mob threshold size is changed.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testLargeSmallIsolation--">testLargeSmallIsolation()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestHFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/types/TestCopyOnWriteMaps.html#testLastEntry--">testLastEntry()</a></span> - Method in class org.apache.hadoop.hbase.types.<a href="org/apache/hadoop/hbase/types/TestCopyOnWriteMaps.html" title="class in org.apache.hadoop.hbase.types">TestCopyOnWriteMaps</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/types/TestCopyOnWriteMaps.html#testLastKey--">testLastKey()</a></span> - Method in class org.apache.hadoop.hbase.types.<a href="org/apache/hadoop/hbase/types/TestCopyOnWriteMaps.html" title="class in org.apache.hadoop.hbase.types">TestCopyOnWriteMaps</a></dt>
@@ -46639,6 +46643,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/lib/TestStaticUserWebFilter.html#testOldStyleConfiguration--">testOldStyleConfiguration()</a></span> - Method in class org.apache.hadoop.hbase.http.lib.<a href="org/apache/hadoop/hbase/http/lib/TestStaticUserWebFilter.html" title="class in org.apache.hadoop.hbase.http.lib">TestStaticUserWebFilter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testOnConfigurationChange--">testOnConfigurationChange()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestHFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.html#testOnDiskRegionCreation--">testOnDiskRegionCreation()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">TestHRegionFileSystem</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/codec/TestCellCodec.html#testOne--">testOne()</a></span> - Method in class org.apache.hadoop.hbase.codec.<a href="org/apache/hadoop/hbase/codec/TestCellCodec.html" title="class in org.apache.hadoop.hbase.codec">TestCellCodec</a></dt>
@@ -52741,6 +52747,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/TestSecureIPC.TestThread.html#TestThread-org.apache.hadoop.hbase.shaded.ipc.protobuf.generated.TestRpcServiceProtos.TestProtobufRpcProto.BlockingInterface-">TestThread(TestRpcServiceProtos.TestProtobufRpcProto.BlockingInterface)</a></span> - Constructor for class org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/TestSecureIPC.TestThread.html" title="class in org.apache.hadoop.hbase.security">TestSecureIPC.TestThread</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testThreadCleanup--">testThreadCleanup()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestHFileCleaner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncProcess.html#testThreadCreation--">testThreadCreation()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess</a></dt>
 <dd>
 <div class="block">This test simulates multiple regions on 2 servers.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AllValidPaths.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AllValidPaths.html b/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AllValidPaths.html
index b7091d2..b477baf 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AllValidPaths.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.AllValidPaths.html
@@ -146,7 +146,7 @@ extends org.apache.hadoop.hbase.master.cleaner.CleanerChore&lt;org.apache.hadoop
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.master.cleaner.CleanerChore</h3>
-<code>cleanersChain, params</code></li>
+<code>cleanersChain, fs, params</code></li>
 </ul>
 </li>
 </ul>
@@ -194,7 +194,7 @@ extends org.apache.hadoop.hbase.master.cleaner.CleanerChore&lt;org.apache.hadoop
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.cleaner.CleanerChore</h3>
-<code>checkAndDeleteDirectory, chore, cleanup, getEnabled, runCleaner, setEnabled</code></li>
+<code>checkAndDeleteDirectory, chore, cleanup, deleteFiles, getEnabled, runCleaner, setEnabled</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.ScheduledChore">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/993199fc/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html b/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html
index fabf878..69521a4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.197">TestHFileCleaner.DummyServer</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#line.200">TestHFileCleaner.DummyServer</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.hadoop.hbase.Server</pre>
 </li>
@@ -232,7 +232,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DummyServer</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.197">DummyServer</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.200">DummyServer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -249,7 +249,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.200">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.203">getConfiguration</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getConfiguration</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -262,7 +262,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.205">getZooKeeper</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.208">getZooKeeper</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getZooKeeper</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -275,7 +275,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoordinatedStateManager</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.CoordinatedStateManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.215">getCoordinatedStateManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.CoordinatedStateManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.218">getCoordinatedStateManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getCoordinatedStateManager</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -288,7 +288,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConnection</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.220">getConnection</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.223">getConnection</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getConnection</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -301,7 +301,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaTableLocator</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.MetaTableLocator&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.225">getMetaTableLocator</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.MetaTableLocator&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.228">getMetaTableLocator</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getMetaTableLocator</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -314,7 +314,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.ServerName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.230">getServerName</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.ServerName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.233">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getServerName</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -327,7 +327,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.235">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.238">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -341,7 +341,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isAborted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.239">isAborted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.242">isAborted</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>isAborted</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Abortable</code></dd>
@@ -354,7 +354,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.244">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.247">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>stop</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Stoppable</code></dd>
@@ -367,7 +367,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.248">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.251">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>isStopped</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Stoppable</code></dd>
@@ -380,7 +380,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getChoreService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.ChoreService&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.253">getChoreService</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.ChoreService&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.256">getChoreService</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getChoreService</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -393,7 +393,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getClusterConnection</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.258">getClusterConnection</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.DummyServer.html#line.261">getClusterConnection</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getClusterConnection</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>